У меня есть функция, которая принимает параметр и обратный вызов. Он должен выполнить запрос к удаленному API и получить некоторую информацию, основанную на параметре. Когда он получает информацию, ей необходимо отправить ее на обратный вызов. Теперь удаленный API иногда не может обеспечить. Мне нужно, чтобы моя функция продолжалась, пока она не справится с этим, а затем вызовет обратный вызов с правильными данными.
В настоящее время у меня есть код ниже внутри функции, но я думаю, что такие вещи, как while (!done
); не является правильным node кодом.
var history = {};
while (true) {
var done = false;
var retry = true;
var req = https.request(options, function(res) {
var acc = "";
res.on("data", function(msg) {
acc += msg.toString("utf-8");
});
res.on("end", function() {
done = true;
history = JSON.parse(acc);
if (history.success) {
retry = false;
}
});
});
req.end();
while (!done);
if (!retry) break;
}
callback(history);
Как мне это сделать правильно?