我有以下代码并在代码中输入时if语句内(if (that.cont))
我收到未完成承诺链的错误,原因可能是什么以及原因如何我应该避免它吗?js承诺没有正确关闭
run: function() {
var oDef = Q.defer();
var Obj = Q(sWUrl);
if (that.cont) {
Obj = that.cont.get(that.cont.transl).then(function(mSet) {
debugger;
if (mSet) {
var lang = mSet.supportedLang;
var dft = mSet.defaultLang;
if (!dft) {
if (lang) {
dft = lang.split(",")[1];
} else {
dft = "en";
}
}
return Q(sWUrl + "&lang=" + window.encodeURIComponent(lang));
} else {
return Q(sWUrl);
}
}, function() {
return Q(sWUrl);
}).then(function(sUri) {
return that.cont.se.pre.get("Pre").then(function(oPreSet) {
return sUri + "&device=" + window.encodeURIComponent(oPreSet.dte);
}).fail(function(error) {
return sUri;
});
});
}
return Obj.then(function(sUri) {
oWin.window.location.href = sUri;
return oWin.oDef.promise;
});
},
的''的和if'的最后托架在此代码不会关闭任何外界return'谎言 - 有超过支架中间的某个位置。 – vlaz 2015-04-06 10:31:48
@Vld - 你可以在哪些语句之后向我展示支架在哪里?顺便说一句,最后一个是因为这个代码是一个大方法的一部分... – 2015-04-06 10:34:02
我已经提交了一个编码格式正确的代码 - 它清楚地看到什么不属于 - 这是最后一个关闭花括号代码块的底部。 – vlaz 2015-04-06 10:36:41