Способ работы с обещанием - использовать функцию .then()
, которая будет выполнять функции обратного вызова для обработки результата каждого из ваших запросов. Вы должны использовать эту функцию следующим образом:
//promise.then(onFulfilled[, onRejected]);
let myArray = [1,2,3,4]
myArray.forEach(i => {
request.update(`view/${i}`).then(response => {
//Fulfilment
},reason=>{
//Rejection
});
});
Этого должно быть достаточно для вашей проблемы. Иногда я предпочитаю сохранять его «простым», управляя результатом обещания только в первом обратном вызове, это означает, что вы контролируете получаемый ответ и можете идентифицировать отказ другим способом:
let myArray = [1,2,3,4]
myArray.forEach(i => {
request.update(`view/${i}`).then(response=>{
if(response){
//If I control the response I can identify the status of the request
const data = JSON.parse(response);
switch(data.status){
case "error":
//Do stuff
break;
case "unknown":
//Do stuff
break;
case "valid":
//Do stuff
break;
}
}else{
//This means no response was received, it is different from Promise rejection
//it may have been caused by network issues.
//You can trigger some error from here or do what you want
}
});
//This way I treat the Promise in one callback instead of two
});
Документация для .then () доступен здесь . Надеюсь, это кому-то помогло.