簡體   English   中英

如果我想在 the.then() 觸發后做某事,可以在 JavaScript 中使用承諾嗎

[英]Can promises be used in JavaScript if I want to do something after the .then() fires

async function fetchUserCollection(callback)
{
    await client.connect();

    const userCollection = client.db('database').collection('users');
    await callback(userCollection);

    client.close();
}

我正試圖擺脫回調並轉向承諾。

但是,如果這是 promise,則await resolve(userCollection)將無法在此處工作,因為resolve()會立即返回。

有沒有辦法在這里使用承諾? 還是這里需要回調?

返回一個普通的 Promise 在這里不起作用,因為一個普通的.then對稍后可能調用它的 .then 幾乎無動於衷。 Promise 可以對.then執行的所有操作都是在 Promise 解析后執行它們,僅此而已 符合規范的 Promises 沒有在使用.then完成使用它們之后運行某些東西的功能。

我認為您目前正在做的是最干凈的解決方案。 盡管 Promise 存在,但回調本質上並不是壞事——有時它們有一些用例,就像這里一樣。 回調 IMO 的主要問題是當它們相互嵌套時,會出現很多丑陋的縮進和難以閱讀的代碼結果,但這不會在您的代碼中發生。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM