异步函数和 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中文网其他相关文章!