Как добавить указанную задержку к разрешению обещания?

Я хотел бы определить функцию, которая принимает обещание и возвращает идентичное обещание, за исключением того, что возвращенные обещания разрешают произвольное время ожидания; мой код выглядит примерно так: но я'я не уверен, что яЯ ловлю все, как отказ.

//Returns a promise identical to promise, except with an additional delay
// specified by timeout.
delayedPromise(promise, timeout) {
    var newPromise = $.Deferred();
    promise.then(function(result) {
        window.setTimeout(function() {
            newPromise.resolve(result);
        }, 3000);
    }
    return newPromise;
}

Есть лучший способ сделать это? Мне также нужно добавить аналогичную функцию для обработки ошибок?

Ответы на вопрос(2)

Ваш ответ на вопрос