async await执行顺序
async await执行顺序
async/await 是用于编写异步代码的语法糖,它允许你以类似于同步代码的方式写异步操作。async 关键字声明的函数会返回一个 Promise,而 await 关键字用于等待一个 Promise 完成。
执行顺序如下:
-
调用
async函数。 -
函数会继续执行,遇到
await时,控制权会交回给调用者。 -
等待的表达式(通常是一个返回 Promise 的表达式)开始执行。
-
一旦 Promise 解决(fulfilled),函数会从暂停的地方恢复,继续执行后续的操作。
下面是一个简单的例子:
async function firstAsync() {
console.log('First async');
return 'First result';
}
async function secondAsync() {
console.log('Second async');
return 'Second result';
}
async function asyncFunction() {
const firstResult = await firstAsync();
console.log(firstResult);
const secondResult = await secondAsync();
console.log(secondResult);
}
asyncFunction();
执行顺序如下:
-
调用
asyncFunction函数。 -
首先执行
firstAsync,打印出 "First async"。 -
遇到
await firstAsync(),控制权交回给asyncFunction的调用者。 -
执行
secondAsync,打印出 "Second async"。 -
firstAsync的 Promise 解决,继续执行console.log(firstResult),打印出 "First result"。 -
遇到
await secondAsync(),控制权再次交回给asyncFunction的调用者。 -
secondAsync的 Promise 解决,继续执行console.log(secondResult),打印出 "Second result"。
综上所述,async/await 的执行顺序是按照函数中的顺序执行的,每遇到 await 关键字就会暂停当前函数的执行,等待 Promise 完成后再恢复执行。
