js中的async 和 await
文章类型:ES6
发布者:admin
发布时间:2023-05-17
async 和 await 是 JavaScript 中用于处理异步操作的关键字,主要是解决异步编程
1:async 用于声明一个函数是异步函数,意味着函数内部可能包含异步操作,会返回一个 Promise 对象
2:await 用于等待一个 Promise 对象的解析(即异步操作的结果)。只能在 async 函数内部使用。当 await 关键字被执行时,它会暂停函数的执行,直到 Promise 对象被解析或拒绝
1:使用方式:async 用于声明一个异步函数,将普通函数转换为异步函数。await 则用于等待一个 Promise 对象的解析,只能在异步函数内部使用。
2:控制流:使用 async 和 await 可以使异步代码的控制流更具可读性。通过在异步函数内使用 await,可以暂停函数的执行,直到等待的 Promise 对象被解析。避免回调地狱(callback hell)和使用复杂的 Promise 链。
3:错误处理:使用 async 和 await 时,可以使用 try...catch 块来捕获异步操作中的错误。在 try 块中使用 await 等待一个可能产生错误的异步操作,然后在 catch 块中处理错误。
4:返回值:async 函数总是返回一个 Promise 对象,状态和值取决于异步函数内部的执行结果。如果函数内部没有显式返回值,则 Promise 的解析值为 undefined。
1:async 和 await 是用于简化异步操作的关键字。它们使得异步代码更易于理解和编写,并提供了更直观的控制流和错误处理机制
// 异步函数,模拟一个异步操作,返回一个 Promise
function fetchData() {
return new Promise((resolve, reject) => {
setTimeout(() => {
const data = "Async data";
resolve(data);
}, 2000);
});
}
// 使用 async 和 await 处理异步操作
async function fetchDataAsync() {
try {
console.log("Fetching data...");
const result = await fetchData(); // 等待异步操作的结果
console.log("Data received:", result);
} catch (error) {
console.error("Error:", error);
}
}
// 调用异步函数
fetchDataAsync();
console.log("After fetchDataAsync");