javascript - 直接返回被拒绝的 jQuery promise

标签 javascript jquery

<分区>

对于 jQuery 的 promise ,不带参数的 $.when() 返回已解决的 promise 。返回被拒绝的 jQuery promise 的等价物是什么?

例如:

(function () { return $.when(); })()
   .then(()=>console.log('resolved'))
   .fail(()=>console.log('failed'));

打印“已解决”。我只想更改函数返回的内容,以便打印“失败”。

这是为了将同步内容与 jQuery promise 联系起来。我唯一想做的就是将整个东西包装在一个延迟对象中,例如我可能有的地方:

function doSomething () {
    let success = ...;
    return success ? $.when() : /* not sure */;
}

我可以这样做:

function doSomething () {
    return $.Deferred(function (def) {
        let success = ...;
        if (success)
            def.resolve();
        else
            def.reject();
    }).promise();
}

但如果我不必像那样包装东西,而是可以直接返回类似 $.when() 的东西,那会更方便。

最佳答案

如果你绝对想使用 jQuery promises 而不是原生 promises,你可以使用 Deferred.reject :

(function () { return $.when($.Deferred().reject()); })()
   .then(()=>console.log('resolved'))
   .fail(()=>console.log('failed'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

关于javascript - 直接返回被拒绝的 jQuery promise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44395709/

相关文章:

javascript - 无法从 IE11 中的受信任站点下载 Blob

jquery 可拖动自动滚动在滚动时消失

javascript - 如何通过 bootstrap 中的 selectpicker 插件使用 id 设置选定值

php - 如何在html标签、javascript和php之间传递变量

javascript - 严格模式禁止隐式创建全局属性 'inferred'

javascript - 特殊字符未导出至 PDF

javascript - 我如何使用 Javascript 或 jQuery 来简化这个过程?

jquery - 如何使用 JQuery 在 MVC4 中添加时间?

javascript - 对按钮元素使用 href 属性

Javascript onloadedmetadata 事件未在 iOS 设备上触发