Я вызываю API для мониторинга состояния ответа. Я должен продолжать вызывать API, пока состояние ответа не будет успешным. Я звоню
Я вызываю функцию getHeader из другого файла js, чтобы получить ответ от API get call. Я должен продолжать вызывать API снова и снова, пока результат. Успех не будет успешным. Однако, когда состояние изменяется на успешное, функция останавливается и не возвращает разрешение. Я думаю, что каждый раз, когда я вызываю функцию, создается новое обещание, и оно не может вернуть разрешение.
Может ли кто-нибудь помочь мне в этом.
*import Promise from 'bluebird'
var requestPromise = Promise.promisifyAll(require('request'))
var instance;
const MonitorResponse = class {
constructor() {
if (instance) {
return instance;
}
instance = this;
}
/**
*
*/
getHeader(authToken,statusHeader) {
console.log(" Successeded Get Geader " + statusHeader + " " +authToken );
return new Promise(function (resolve, reject) {
var self=this;
var options = {
method: 'GET',
rejectUnauthorized: false,
strictSSL: false,
url: statusHeader,
headers: {
'Authorization': 'Bearer ' + authToken,
},
json:true
};
requestPromise.getAsync(options)
.then(function (headerResponse) {
console.log("Response Get Header " + JSON.stringify(headerResponse));
var state = headerResponse.body.state;
console.log("Response Get Header state " +state );
if(state=="SUCCESSFUL")
{
return resolve(" from loop ");
}
else{
self.getHeader(authToken,statusHeader);
console.log(" After recursion state " +state );
}
})
.catch(function (error) {
return reject(error)
});
}.bind(this));
}
}
module.exports = MonitorResponse*
Ожидаемый результат - получить разрешение возврата ("из цикла");когда вызывается функция getHeader.