[英]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.