私はローカルDBにデータを同期させるAPIを使っています。同期バッチがデータの送信を開始できるようになるまで、再帰的に呼び出すsyncReady APIがあります。再帰が正しく機能し、.thenコールバックが呼び出されますが、解決関数は決して応答を解決しません。 「:{「; 0 pagesTotal}」応答が、RES(応答)がチェーンダウン応答を送信することはありません。私は497がログに記録され、レスポンス」を取得Node.JS再帰的約束が解決しない
const request = require('request-promise');
const config = require('../Configs/config.json');
function Sync(){}
Sync.prototype.syncReady = function (token, batchID) {
return new Promise((res, rej) => {
config.headers.Get.authorization = `bearer ${token}`;
config.properties.SyncPrep.id = batchID;
request({url: config.url.SyncReady, method: config.Method.Get, headers: config.headers.Get, qs: config.properties.SyncPrep})
.then((response) => {
console.log(`The Response: ${response}`);
res(response);
}, (error) => {
console.log(error.statusCode);
if(error.statusCode === 497){
this.syncReady(token, batchID);
} else rej(error);
}
);
});
};
私は、チェーン全体に沿ってconsole.logメッセージを追加しました。チェインの背後にある.then関数のどれも発砲していません。
これを十分に説明していただければ幸いです。約束が解決されない理由は何ですか?
ありがとうございます!
ありがとうございました! 497を解決することは、チェーンを解決する鍵でした。 res(this.syncReady(token、batchID)); – DrFiasco
本当に、私はあなたがする必要があるのは約束そのものを返すだけなので、別の約束を約束することを約束することです。 – Goblinlord