JavaScript异步编程:async/await详解及执行顺序
输出的顺序和理由如下:
-
首先输出'script start',因为这是代码的第一个语句。
-
调用async1()函数,输出'async1 start',因为这是async1()函数中的第一条语句。
-
调用async2()函数,输出'async2',因为这是async2()函数中的唯一一条语句。
-
在async1()函数中,await async2()会暂停async1()函数的执行,等待async2()函数执行完毕后才会继续执行async1()函数。因为async2()函数只有一条语句,因此它会立即执行,并返回一个resolved状态的Promise对象。
-
async1()函数中的await async2()函数执行完毕后,输出'async1 end'。
-
执行new Promise()语句,并输出'promise1',因为这是new Promise()语句中的第一条语句。
-
调用Promise对象的then()方法,输出'promise2',因为这是then()方法中的第一条语句。
-
最后输出'script end',因为这是代码的最后一条语句。
原文地址: https://www.cveoy.top/t/topic/nkhy 著作权归作者所有。请勿转载和采集!