await 与 async
时间: 2024-02-19 14:56:40 浏览: 73
await
和 async
是两种在 JavaScript 中用于处理异步操作的关键字。它们通常一起使用,以使代码更清晰、更易于理解,特别是在处理长时间运行的操作时。
async
async
是一个函数修饰符,它告诉 JavaScript 引擎该函数包含异步操作。当你在一个函数上使用 async
修饰符时,你可以在该函数中使用 await
关键字,或者在函数体内使用 Promise
。
例如:
async function fetchData() {
return await fetch('https://api.example.com/data');
}
在这个例子中,fetchData
是一个异步函数,它返回一个 Promise
。这个 Promise
被解析为从服务器获取的数据。由于 await
关键字,我们不需要使用 .then()
或 .catch()
方法来处理这个返回的 Promise
。
await
await
是一个等待操作完成的表达式。当它出现在一个 async
函数中时,它会等待一个 Promise
或另一个 await
表达式完成。一旦这个操作完成,控制权就会立即返回给调用者。
例如:
async function fetchAndParseData() {
const response = await fetch('https://api.example.com/data');
const data = await parseData(response);
console.log(data);
}
在这个例子中,我们首先使用 await
等待 fetch
操作完成,然后再等待 parseData
函数解析数据。由于 await
的存在,我们不需要使用 .then()
或 .catch()
方法来处理返回的响应或解析后的数据。
注意:在 JavaScript 中使用 await
时,必须确保它在一个 async
函数内部,并且该函数必须返回一个 Promise
。否则,JavaScript 引擎会抛出一个错误。
总结一下,async
和 await
的主要区别在于:使用 async
可以让异步操作看起来像同步操作,而使用 await
可以暂停代码执行并等待一个异步操作完成。这使得 JavaScript 中的异步编程变得更加简洁和易于理解。
相关推荐


















