async搭配await
时间: 2023-10-15 13:25:28 浏览: 88
async和await是ES2017引入的一种处理异步操作的语法。async用于申明一个函数是异步的,而await用于等待一个异步方法执行完成。async函数本身的返回值是一个promise对象。await表示在这里等待一个promise返回,再接下来执行。它可以跟着一个promise对象,也可以是其他JavaScript数据类型。这样可以让异步代码更加简洁和易读。
举个例子,假设有以下代码:
async function async1() {
console.log('async1 start');
await async2();
console.log('async1 end');
}
async function async2() {
console.log('async2');
}
async1();
console.log('script start');
这段代码中,async1函数和async2函数都是异步函数,async1函数内部使用了await关键字等待async2函数执行完成。执行顺序如下:
1. 执行async1函数,输出'async1 start'
2. 遇到await async2(),等待async2函数执行完成
3. 执行async2函数,输出'async2'
4. async2函数执行完成,继续执行async1函数,输出'async1 end'
5. 输出'script start'
可以看出,使用async和await可以让异步代码按照我们期望的顺序执行,使代码更加清晰和易于理解。
实际上,async/await的实现原理是在语法层面对Promise对象的封装。在JavaScript引擎内部,它实际上是通过生成Generator函数并使用该函数来处理异步操作的。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [async、await](https://blog.csdn.net/m0_50290552/article/details/119840898)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *3* [java异步方法 Async/Await](https://blog.csdn.net/m0_61696809/article/details/129234313)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文