作家
登录

JavaScript Event Loop机制详解与Vue.js中nextTick的实践应用

作者: 来源: 2017-09-12 10:24:34 阅读 我要评论

  •  
  •   function nextTickHandler() { 
  •  
  •     pending = false
  •  
  •     const copies = callbacks.slice(0); 
  •  
  •     callbacks.length = 0; 
  •  
  •     for (let i = 0; i < copies.length; i++) { 
  •  
  •       copies[i](); 
  •  
  •     } 
  •  
  •   } 
  •  
  •   
  •  
  •   // nextTick 的回调会被参加到 MicroTask 队列中,这里我们重要经由过程原生的 Promise 与 MutationObserver 实现 
  •  
  •   /* istanbul ignore if */ 
  •  
  •   if (typeof Promise !== 'undefined' && isNative(Promise)) { 
  •  
  •     let p = Promise.resolve(); 
  •  
  •     let logError = err => { 
  •  
  •       console.error(err); 
  •  
  •     }; 
  •  
  •     timerFunc = () => { 
  •  
  •       p.then(nextTickHandler).catch(logError); 
  •  
  •   
  •  
  •       // 在朝分 iOS 体系下的 UIWebViews 中,Promise.then 可能并不会被清空,是以我们须要添加额外操作以触发 
  •  
  •       if (isIOS) setTimeout(noop); 
  •  
  •     }; 
  •  
  •   } else if ( 
  •  
  •     typeof MutationObserver !== 'undefined' && 
  •  
  •     (isNative(MutationObserver) || 
  •  
  •       // PhantomJS and iOS 7.x 
  •  
  •       MutationObserver.toString() === '[object MutationObserverConstructor]'
  •  
  •   ) { 
  •  
  •     // 当 Promise 弗采取时刻应用 MutationObserver 
  •  
  •     // e.g. PhantomJS IE11, iOS7, Android 4.4 
  •  
  •     let counter = 1; 
  •  
  •     let observer = new MutationObserver(nextTickHandler); 
  •  
  •     let textNode = document.createTextNode(String(counter)); 

      推荐阅读

      借力大数据技术 证券行业迎转型契机

    51CTO诚邀您9月23号和秒拍/国美/美团元专家一路聊智能CDN的优化之路,抓紧时光哦! 互联网+时代,证券行业制订大年夜数据计谋急切而合时。一方面,近年来大年夜数据被晋升到国度成长计谋层>>>详细阅读


    本文标题:JavaScript Event Loop机制详解与Vue.js中nextTick的实践应用

    地址:http://www.17bianji.com/lsqh/37333.html

  • 关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)