Как сделать запрос GET внутри al oop, используя async - PullRequest
0 голосов
/ 10 марта 2020

У меня проблемы с получением запросов на выполнение в пределах oop У меня есть. Код по сути такой:

function getRequest(param){
   //Get request... then I save the response to a JSON file using fs.writeFile()
   //...
}
function run(){
   var arr = ['fee', 'foo', 'faa'];
   while(I need to update this for the duration of the program){
      arr.forEach((val) => {
         getRequest(val);
      }
   }
}

Запрос get не будет go выполнен, потому что l oop не будет ждать его фактического запроса. Я прочитал некоторые потенциальные решения с использованием функций asyn c, но не смог заставить их работать. Какие-либо предложения? ТИА.

Ответы [ 2 ]

0 голосов
/ 10 марта 2020

вы также можете попробовать это

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of

Если вы прокрутите страницу вниз, есть пример с вызовами API.

0 голосов
/ 10 марта 2020

Если getRequest возвращает Promise, вы можете сделать Promise.all. Это также означает, что каждый отдельный запрос не зависит от других ответов. Все они могут работать индивидуально.

Promise.all

Пример:

function getRequest(param){
   //Get request... then I save the response to a JSON file using fs.writeFile()
   //...
}
function run(){
   var arr = ['fee', 'foo', 'faa'];
   const promises = [];
   while(I need to update this for the duration of the program){
      arr.forEach((val) => {
         promises.push(getRequest(val));
      }
   }
   return promises;
}

const promises = run(); // Array of Promises
Promise.all(promises).then( response => {
  // ... 
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...