首页 >web前端 >js教程 >JavaScript 中的异步函数和 Promise 如何协同工作?

JavaScript 中的异步函数和 Promise 如何协同工作?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-22 20:15:17961浏览

How Do Async Functions and Promises Work Together in JavaScript?

异步函数和 Promise

使用异步操作时,了解异步函数和 Promise 如何交互至关重要。

异步函数总是返回Promises

与常规函数不同,异步函数总是返回一个 Promise,指示其异步操作的完成。这使得在顺序代码中处理异步操作更加简单。

示例:

async function latestTime() {
  const bl = await web3.eth.getBlock('latest');
  return bl.timestamp;
}

返回原始值与 Promise

虽然函数返回一个原始值(bl.timestamp),但latestTime()函数本身返回一个承诺。这在尝试访问返回值时可能会导致混乱。

使用 Promises

要访问返回的 Promise 的解析值,您需要使用 then( ) 方法:

latestTime().then((time) => {
  console.log(time);
});

或者,在现代 JavaScript 环境中,您可以使用顶级wait:

const time = await latestTime();
console.log(time);

显式 Promise 处理

为了清楚起见,这里更明确地表示了异步函数在 Promise 回调方面的行为方式:

function latestTime() {
    return new Promise((resolve, reject) => {
        web3.eth.getBlock('latest').then((bl) => {
            resolve(bl.timestamp);
        })
    });
}

以上是JavaScript 中的异步函数和 Promise 如何协同工作?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn