首頁 > web前端 > js教程 > JavaScript 中的非同步函數和 Promise 如何協同運作?

JavaScript 中的非同步函數和 Promise 如何協同運作?

Mary-Kate Olsen
發布: 2024-12-22 20:15:17
原創
922 人瀏覽過

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.time ),但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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板