手写async await
时间: 2024-03-14 17:41:45 浏览: 155
C# async await使用方法
async/await 是 JavaScript 中处理异步操作的一种语法糖,它使得异步代码的编写更加简洁和易读。下面是手写 async/await 的基本介绍:
1. async 函数:async 函数是一个返回 Promise 对象的函数。在函数内部,可以使用 await 关键字来等待一个 Promise 对象的状态变为 resolved(已完成)或 rejected(已拒绝),然后再继续执行后面的代码。
2. await 表达式:await 关键字只能在 async 函数内部使用。它可以暂停 async 函数的执行,等待一个 Promise 对象的状态变为 resolved,并返回 Promise 对象的结果值。如果 await 后面的表达式不是 Promise 对象,它会被自动转换为一个 resolved 的 Promise 对象。
下面是一个手写的 async/await 示例:
```javascript
function delay(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function fetchData() {
try {
console.log("Fetching data...");
await delay(2000); // 模拟异步操作
console.log("Data fetched!");
return "Data";
} catch (error) {
console.error("Error:", error);
throw error;
}
}
async function main() {
try {
const data = await fetchData();
console.log("Received data:", data);
} catch (error) {
console.error("Error:", error);
}
}
main();
```
在上面的示例中,fetchData 函数是一个异步函数,它使用了 await 关键字来等待 delay 函数返回的 Promise 对象。main 函数是程序的入口点,它使用了 async/await 来处理 fetchData 函数的返回值。
阅读全文