首页 > web前端 > js教程 > 如何在 JavaScript 顶层正确执行异步代码?

如何在 JavaScript 顶层正确执行异步代码?

DDD
发布: 2024-12-13 06:44:19
原创
216 人浏览过

How Do I Properly Execute Asynchronous Code at the Top Level in JavaScript?

异步代码的顶级执行

在异步编程中,async/await 功能允许您在同步和异步任务之间无缝切换。然而,在顶层执行异步代码时,必须考虑一些因素。

说明

当你定义一个异步函数时,它会返回一个 Promise。当您在顶层调用此函数时,它会立即返回 Promise,而不是解析的值。这就是为什么你的控制台在执行异步任务之前输出 Promise 对象。

解决方案

要解决这个问题,你有几个选项:

1。顶级等待(ES2022提案)

在现代环境中,您可以在模块中使用顶级等待。这允许您直接在模块范围内等待 Promise。

const text = await main();
console.log(text); // Logs the resolved value
登录后复制

2.具有未处理拒绝的顶级异步函数

您可以定义一个从不拒绝的顶级异步函数。这可以防止未处理的拒绝错误,但不会显式处理错误。

(async () => {
  try {
    const text = await main();
    console.log(text); // Logs the resolved value
  } catch (e) {
    // Error handling (optional)
  }
})();
登录后复制

3. then() 和 catch()

如果以上选项都不合适,可以使用 Promise 的 then() 和 catch() 方法来处理结果。

main()
  .then((text) => {
    console.log(text); // Logs the resolved value
  })
  .catch((err) => {
    // Error handling
  });
登录后复制

注意:在所有情况下,正确处理拒绝以防止出现未处理的拒绝错误非常重要。

以上是如何在 JavaScript 顶层正确执行异步代码?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板