[英]cannot call promise inside of function: "has no call signatures"
我有這個 class:
export class ExponentialBackoffUtils {
public static retry(promise: Promise<any>, maxRetries: number, onRetry?: Function) {
function waitFor(milliseconds: number) {
return new Promise((resolve) => setTimeout(resolve, milliseconds));
}
async function retryWithBackoff(retries: number) {
try {
if (retries > 0) {
const timeToWait = 2 ** retries * 1000;
await waitFor(timeToWait);
}
console.log('Retries: ', retries);
if (retries < 3) {
throw new Error();
}
return await promise();
} catch (e) {
if (retries < maxRetries) {
if (onRetry) {
onRetry();
}
return retryWithBackoff(retries + 1);
} else {
throw e;
}
}
}
return retryWithBackoff(0);
}
}
Typescript 對我大喊大叫說我不能調用我傳入的 promise ......為什么? 它說 promise 沒有調用簽名。
Promise
不是 function,因此不能使用promise()
語法調用它。
您只需await promise
就足夠了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.