我有以下代碼:調用解析功能發生在JavaScript無極拒絕功能
return new Promise (function (resolve,reject) {
if (this.ImageData && averageColor) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == XMLHttpRequest.DONE && xhr.status == 200) {
console.log("Image found");
resolve(xhr.response);
}else {
console.log("Image not found");
reject();
}
}
xhr.open('GET', 'http://localhost:8765/color/'+averageColor, true);
xhr.send(null);
}
else {
reject();
}
});
調用此代碼如下功能:
var v = tile.getImage(tile.getColorAverage());
v.then(function (value) {
console.log("laughing");
}).catch(function() {
console.log("Catch called");
});
的問題是在我的承諾我可以看到,如果條件正確並從服務器獲取響應(由於console.log)。然而,另一方面,它根本沒有進入「那麼」的位置(甚至沒有)。由於某種原因,它會被拒絕。我瘋了,因爲我可以看到它執行應該解決它的位,但我沒有得到任何東西。任何幫助將非常感激。
編輯:
現在我只跑了一次。這裏是我的console.log跟蹤。現在更困惑:
你在期待'this'是中前' Promise'解析器功能? – guest271314
你可以把一個控制檯.log前都拒絕調用 - 只是爲了調試 –