await中嵌套async
时间: 2023-11-01 11:50:51 浏览: 30
在使用await时,可以嵌套async函数。这意味着在一个async函数内部,可以使用另一个async函数,并在调用该函数时使用await来等待其返回结果。嵌套的async函数可以像普通函数一样返回一个Promise对象,在外部使用await来等待其结果。例如,在一个async函数中使用await调用另一个async函数,代码如下:
```
async function outerFunction() {
let result = await innerFunction();
console.log(result);
}
async function innerFunction() {
// some asynchronous operations
return "Inner function result";
}
outerFunction();
```
在这个例子中,outerFunction是一个async函数,它使用await调用innerFunction,并等待innerFunction返回的结果。innerFunction是另一个async函数,它执行一些异步操作,并返回一个字符串。当innerFunction完成后,它的结果将被赋给result变量,并在outerFunction中进行打印。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
相关问题
async await 异步嵌套
async await 异步嵌套是指在异步操作中使用 async 和 await 关键字来处理多个嵌套的异步请求。在提供的代码示例中,通过 async 和 await 实现了异步嵌套处理。
在 created 方法中调用了 getKpiRoleButton 方法,该方法使用了 async 关键字来声明一个异步函数。在该方法内部,通过 await 关键字等待 signKpiRoleIdSearch 方法的返回结果。signKpiRoleIdSearch 方法返回了一个 Promise 对象。在 Promise 的回调函数中,使用了 this.$http.get 方法发送了一个 GET 请求,并通过 localStorage.getItem("id") 获取了 userId。当接收到返回结果后,如果 res.data.success 为真,则调用了 resolve 方法将结果返回。
在 getKpiRoleButton 方法内部,通过 await 关键字等待 signKpiRoleIdSearch 方法的返回结果,并将结果赋值给 resultObj。然后,使用 kpiAPI.kpiPermissionsButton 方法发送一个带有 roleId 参数的请求,并在 then 方法中处理返回结果。
通过使用 async 和 await,可以使异步嵌套的处理更加清晰和简洁。<span class="em">1</span><span class="em">2</span>
#### 引用[.reference_title]
- *1* [JS基于ES6新特性async await进行异步处理操作示例](https://download.csdn.net/download/weixin_38519681/14808936)[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%"]
- *2* [vue 使用async await处理异步嵌套请求](https://blog.csdn.net/weixin_43173924/article/details/106093600)[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 ]
async await 嵌套
在使用 async/await 时,可以使用嵌套的方式来处理异步操作。例如:
```
async function foo() {
const result1 = await asyncFunc1();
const result2 = await asyncFunc2(result1);
return result2;
}
async function bar() {
const result3 = await asyncFunc3();
const result4 = await foo();
return [result3, result4];
}
```
在上面的代码中,`foo` 函数中的两个异步操作是按顺序执行的,而 `bar` 函数中则嵌套了 `foo` 函数,使得 `foo` 中的异步操作也是按顺序执行的。
需要注意的是,嵌套的 async/await 会导致代码变得复杂,而且可能会影响性能。因此,在实际开发中,应该尽量避免过多的嵌套。