簡體   English   中英

如何等待 function 調用另一個回調 function - JavaScript

[英]How to wait for a function that calls another callback function - JavaScript

我正在使用使用callback的第三方庫 function 。 我希望它改用Promise 我似乎無法弄清楚如何等待回調發生,然后才能從 function 返回一些東西。

// this is the third party function that I cannot change
const callbackFunction = (arg: string, callback: (err?: string, result?: string) => void) => {
    console.log("do something else");
    return callback(undefined, "some data");
}

我想寫一個 function 來為我得到result 這是我到目前為止所擁有的,但似乎不是一個正確的方法。

這是我的 function,它應該返回result

const someFunction = (): string | undefined => {
    console.log("do something async"); // async/await
    callbackFunction("something", (err, result) => {
        return result || undefined;
    });

    // how to return `result` from here?
}

我希望它改用 Promise。

您可以使用基於回調的 api 並使用new Promise構造函數將其包裝在 promise 中。

const someFunction = (): Promise<string | undefined> => {
  return new Promise((resolve, reject) => {
    console.log('do something');
    callbackFunction('something', (err, result) => {
      if (err) 
        reject(err);
      else 
        resolve(result || undefined);
    });
  });
}

暫無
暫無

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

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