- await 必须用在被 async 修饰的函数内(因为 await 会阻塞代码,但是阻塞的范围要限制在 async 函数执行的范围内)
- 箭头函数中,添加 async 函数要写在参数的前面
- await 是在异步函数内部使用的关键字,用于等待一个 Promise 对象的解决(成功)或拒绝(失败)。当使用 await 关键字时,它会暂停函数的执行,直到等待的 Promise 对象状态变为解决。然后,它会提取 Promise 的成功结果并将其赋值给一个变量。
具体工作原理如下:
当遇到 await 关键字时,函数的执行会暂停,但不会阻塞整个应用程序或线程。这允许其他任务继续执行,使程序更具有响应性。
await 后面通常跟随一个 Promise 对象。如果 Promise 成功解决,await 表达式将返回成功的结果,并且函数会继续执行。如果 Promise 被拒绝,它将引发一个异常,可以通过 try...catch 块来捕获和处理。
如果 await 后面跟随的不是一个 Promise 对象,而是一个普通的值,那么 JavaScript 会将该值包装成一个已解决的 Promise 对象,然后立即解决,并将该值作为成功的结果返回。这使得 await 可以等待非 Promise 值的完成,但依然会在原地等待。
请注意,尽管 await 在代码中会暂停执行,但它不会阻塞整个应用程序。在等待异步操作完成时,事件循环将继续运行其他任务。
const fn = async () => {
const res = await 10
console.log(res)
}
fn()
// 输出是10
标签:函数,await,阻塞,Promise,async,等待
From: https://www.cnblogs.com/sxgwyf/p/17725055.html