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トレースがあります。今でも多くの混乱した:特に別の値に設定されていない限りPromise
コンストラクタ内
ダウンの問題が発生する前に、そのコードを修正する必要がありますプロミスのリゾルバ機能? – guest271314
あなたは両方の拒否の前にコンソール.logを置くことができます - デバッグするだけです –