async 和 await 是 JavaScript 中用于处理异步操作的语法糖,它们通常与 Promise 对象一起使用,可以更方便地编写和管理异步代码。
async 函数 :
async 函数是一个特殊的函数,它在定义时会隐式返回一个 Promise 对象。在 async 函数内部,可以使用 await 关键字来等待 Promise 对象的解析,并将其结果返回。
示例:
ts
async function fetchData() {
let response = await fetch('https://api.example.com/data');
let data = await response.json();
return data;
}
await 表达式 :
await 关键字只能在 async 函数内部使用,用于等待一个 Promise 对象的解析。它暂停 async 函数的执行,直到 Promise 对象的状态变为 resolved(解析)或 rejected(拒绝)为止。
示例:同上。
使用 async/await 进行异步操作 :
在 async 函数外部可以使用 then 方法或者 await 关键字来处理异步函数返回的 Promise 对象。
示例:
js
async function main() {
try {
let data = await fetchData();
console.log(data);
} catch (error) {
console.error('Error fetching data:', error);
}
}
main();
在使用 async 和 await 时,需要注意以下几点:
await关键字只能在 async 函数内部使用,否则会导致语法错误。await关键字只能用于等待 Promise 对象的解析,不能用于普通值或非 Promise 对象。- 使用
async函数定义的函数会返回一个 Promise 对象,因此可以使用then方法或者catch方法来处理函数返回的结果或错误。 async函数内部的错误会被 Promise 对象的catch方法捕获,因此建议使用try...catch结构来处理可能出现的错误。
await后面跟一个promise数组会怎么样?
应该跟一个promise,而不是数组。所以promise数组应该放入promise.all。