Мне приходится получать запросы к медленному API и отслеживать статус ответа. Я могу получить данные (с другим запросом на получение и другим URL) только после того, как начальный статус отправки будет «Готово». Некоторые поисковые запросы выбираются быстрее, чем другие, поэтому я должен помнить об этом
Я использовал функцию javascript setTimeout и ждал 20 секунд до завершения всех поисковых запросов. Это хит или промах, так как некоторые запросы выбираются быстрее, чем через 20 секунд, а некоторые позже
async function get_dispatch_state(sid) {
let dispatchState = "";
let json = await axios.get(
`https://digitals.devfg.test.com:8089/services/search/jobs/${sid}?output_mode=json`,
{
method: "get",
auth: auth,
headers: options
}
);
dispatchState = json.data.entry[0]["content"].dispatchState;
return dispatchState;
}
function get__data() {
axios({
method: "get",
url: `https://digitalsp.devfg.test.com:8089/services/search/jobs/test_search_1/results?output_mode=json`,
auth: auth,
headers: options
})
.then(datax => {
fraud_line_1d = datax.data;
console.log("***Fraud line 1****" + JSON.stringify(fraud_line_1d));
})
.catch(error => {
console.log("second error is " + error);
});
// repeat other get requests
}
setTimeout(function() {
get_data();
}, 20000);
Все данные в конечном итоге выбираются, но с разными интервалами в зависимости от размера поискового запроса. Мне нужен совет о том, как лучше всего получить данные, когда статус отправки завершен.