美文网首页
Event Loop

Event Loop

作者: pumpkin1024 | 来源:发表于2021-02-26 10:50 被阅读0次

    写的很好的event loop链接

    笔记

    宏任务:
    script全部代码、setTimeout、setInterval、setImmediate(浏览器暂时不支持,只有IE10支持,具体可见MDN)、I/O、UI Rendering。
    【记忆:一个U(UI Rendering)I(I/O)工程师在4S店】

    微任务:
    Process.nextTick(Node独有)、Promise、Object.observe(废弃)、MutationObserver(MDN链接
    【记忆:PPOM,其中MutationObserver作用是监听dom发生改变】

    console.log('script start');
    setTimeout(function() {
      console.log('setTimeout');
    }, 0);
    new Promise((resolve)=>{
        resolve();
        console.log("new Promise");
    }).then(function() {
      console.log('promise1');
    }).then(function() {
      console.log('promise2');
    });
    console.log('script end');
    // script start
    // new Promise
    // script end
    // promise1
    // promise2
    // setTimeout
    // 执行顺序 
    // script -> Promise callback -> setTimeout callback
    
    console.log('script start')
    async function async1() {
      await async2()
      console.log('async1 end')
    }
    async function async2() {
      console.log('async2 end') 
    }
    async1()
    // async await 是Promise的语法糖
    // 可以转换成
    // new Promise((resolve)=>{
    //     console.log('async2 end');
    //     resolve();
    // }).then(()=>{
    //   console.log('async1 end')
    // })
    setTimeout(function() {
      console.log('setTimeout')
    }, 0)
    new Promise(resolve => {
      console.log('Promise')
      resolve()
    })
      .then(function() {
        console.log('promise1')
      })
      .then(function() {
        console.log('promise2')
      })
    
    console.log('script end')
    

    相关文章

      网友评论

          本文标题:Event Loop

          本文链接:https://www.haomeiwen.com/subject/zkrmfltx.html