在承诺未决时,jQuery延迟然后触发

时间:2015-08-07 10:07:30

标签: javascript jquery promise deferred

我使用Facebook Javascript SDK为Facebook调用创建了一个包装器javascript。在初始化期间,我为加载Facebook javascript的当前状态创建了一个承诺。每个可以调用Facebook API的公共函数都将使用此承诺来确保SDK可用。代码如下所示:

function FacebookWrapper() {
    this.$sdkDfd = this.loadSDK();
}

FacebookWrapper.prototype.loadSDK = function() {
    var $deferred = $.Deferred();
    require([pathToFacebookSDK], function(response) {
        // resolve or reject deferred here
    });
    return $deferred.promise();
};

FacebookWrapper.prototype.doStuff = function() {
    this.$sdkDfd.
        then(doWhatever);
};

问题是,即使这个。$ sdkDfd的状态仍然未决,无论如何执行。 我的项目周围有类似的实现,它们都有效。有没有人经历过回调被解雇,即使承诺的状态仍未决定?

0 个答案:

没有答案