我有以下代碼並在代碼中輸入時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