猿问

js怎样确定两个异步函数的执行顺序

const asyncFunction = function() {

  return new Promise(function(resolve, reject) {

    resolve('promise');

  });

};


asyncFunction().then(value => console.log(value));


setTimeout(() => { console.log('settimeout') }, 0);

输出


// promise

// settimeout

请问两个都是异步的函数,为什么setTimeout函数后执行?


繁星coding
浏览 551回答 1
1回答

九州编程

Promise 是microtask 队列而setTimeout属于 macrotask 队列在一个Tasks执行之后会立刻执行microtask队列,而后执行macrotask队列macrotask永远在 microtask 之后执行
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答