我使用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的状态仍然未决,无论如何执行。 我的项目周围有类似的实现,它们都有效。有没有人经历过回调被解雇,即使承诺的状态仍未决定?