У меня есть array
данных, против которых я запрашиваю api
с использованием request
. С помощью команды callback
после каждого ответа на запрос, который был сделан. Однако при этом я запускаю параллельные запросы для всех элементов массива. Вот что я делаю:запрос api in foreach
exports.getData = function(arr, cb){
arr.forEach(function(data){
var query = {
//some data here
};
request({
url: 'http://x/y',
json: query,
method: 'POST',
headers: {
'Content-Type': 'application/json'
}
}, function(error, res, body){
if (error){
console.log(error);
} else{
cb(res.body);
}
});
});
};
Я хочу setTimeOut
из x seconds
в приведенном выше коде. Должен ли я выполнять наивную задержку после каждого запроса? Или что-то другое?
, так что вы хотите сделать запрос синхронным? – Sachin
Используйте обещания начать обратный вызов после завершения всех запросов – dave
Есть ли проблема с асинхронностью запросов? Обычно это будет намного лучше для производительности приложения, так что вы не блокируете каждую итерацию цикла, ожидая выполнения предыдущего запроса. –