How to chain multiple fetch() promises?

前端 未结 7 1484
佛祖请我去吃肉
佛祖请我去吃肉 2021-01-06 17:08

The following code fetches a json list and then does another fetch call for each list item to change their values. The problem is that it’s not done synchronously. “new” is

7条回答
  •  甜味超标
    2021-01-06 17:27

    How to chain multiple fetch() promises?

    You do it like how you have been doing it, just append another .then()

    fetch(API_URL_DIARY)
    .then(response => response.json())
    .then(data => {
      console.log("old", data);
      return data;
    })
    .then(data => {
      data.forEach(function(e, index,array) {
        fetch(API_URL_FOOD_DETAILS + e.foodid)
        .then(response => response.json())
        .then(data => {
          array[index] = {...e, ...data};
          console.log("update");
        })
        .then(()=>{
          console.log("new", data)  
        })
      });
    });
    

提交回复
热议问题