在过去,JavaScript 中处理异步操作的方式很不方便。 开发者不得不写出一些不太优雅的代码,使用回调函数来管理它们的控制流程。然而,这一切已经改变了。在 ES8 中,引入了新的异步操作方式,async 和 await。使用它们,处理异步操作的逻辑变得更加容易。
async
Async 函数可以简单地把它们的操作变成一个 Promise。
Async 函数是定义异步函数的一种新方式。
Async 函数内部可以使用 await,await 将会阻塞异步函数,等待一个 Promise 的解决。
Async 函数实际上返回一个 Promise 对象,这个对象将会在异步操作完成时被解决(resolve)。
下面是一个简单的例子,展示如何定义一个 async 函数:
----- -------- ------- - ------ ------ -------- -
接下来,让我们详细了解 await。
await
await 实际上等待一个 Promise 对象的解决,然后把 Promise 对象的值解析出来。接着,使用它处理下一步的逻辑。
我们可以使用下面的例子来展示 await 的工作方式:
----- -------- --------- - ----- -------- - ----- ------------------------------------------------------ ----- ---- - ----- ---------------- ------------------ -
以上代码展示了如何使用 await 来等待一个 Promise,然后从 Promise 中获取数据。
示例代码
下面的例子展示了如何使用 async 函数与 await 来实现异步操作。
----- -------- --------- - --- - ----- -------- - ----- ------------------------------------------------------ ----- ---- - ----- ---------------- ------------------ - ----- --- - ----------------- - -
在这个例子中我们使用 try-catch 语句来管理 Promise 的异常情况。如果 Promise 被拒绝(reject)了,那么 try-catch 语句就会捕捉到异常。同样地,如果 Promise 被解决(resolve)了,代码就会执行 try 语句。
总结
使用 async 和 await,我们可以更容易地管理 Promise,处理复杂的异步操作。
Async 函数是定义一个异步函数的一种新方式,它只是把返回值变成 Promise。
Await 在等待 Promise 解决时暂停异步函数执行,并且在 Promise 被解决(resolve)后,解析出 Promise 的解决值,并且,使用它处理下一步的逻辑。
这里展示的是异步操作的一小部分功能。随着您的继续学习,您将发现更多用途。
如果您喜欢这篇文章,欢迎到我的个人博客 https://www.example.com 学习更多相关知识。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6466f632968c7c53b0762de2