As promessas com JavaScript pendente para sempre são ruins?

Digamos que tenho uma promessa chamadamyProme diga que tenho manipuladores de sucesso e erro chamadosonSuccess eonError.

Sempre que minha promessa demora mais de 10 segundos para ser concluída, quero uma função chamadatimeoutHandler para ser executado, mas se isso acontecer, nemonSuccess nemonError deve ser executado. (Da mesma forma, seonSuccess ouonError corre, eu não quero o meutimeoutHandler para ser executado.)

Eu vim com o seguinte trecho para isso.

new Promise((suc, err) => {
    let outOfTime = false;
    const timeoutId = window.setTimeout(() => {
        outOfTime = true;
        timeoutHandler();
    }, 10000);
    myProm.then(
        (...args) => {
            if (!outOfTime) {
                window.clearTimeout(timeoutId);
                suc(...args);
            }
        },
        (...args) => {
            if (!outOfTime) {
                window.clearTimeout(timeoutId);
                err(...args);
            }
        }
    );
}).then(onSuccess, onError);

No entanto, no caso de um tempo limite, minha promessa recém-definida estará pendente para sempre. Isso poderia ter efeitos colaterais negativos? Por exemplo, o tempo de execução não consegue limpar o objeto Promise porque ainda está pendente (ou algo nesse sentido).

questionAnswers(2)

yourAnswerToTheQuestion