簡體   English   中英

無法在 function 內部調用 promise:“沒有調用簽名”

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

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