jQuery deferred.fail()仅执行一次

时间:2018-11-20 23:48:13

标签: jquery promise jquery-deferred

在jQuery的延迟fail()下仅执行一次,为什么?

var dfd = $.Deferred();

$('button').on('click', function(){

    if(typeof lorem === 'undefined') {
        return dfd.reject();
    }
});

dfd.fail(function(){
    alert('Variable lorem is not defined');
});

https://codepen.io/bartclaeys/pen/EOooKy

预期的行为:重复单击该按钮时,警报应重复触发。

1 个答案:

答案 0 :(得分:-1)

回答我自己的问题,如下:

$('button').on('click', function(){

    var dfd = $.Deferred();

    dfd.fail(function(){
        alert('Error');
    });

    if(typeof lorem === 'undefined') {
        return dfd.reject();
    }
});