如果我使用太多.thens,则在reducer内获取不起作用

时间:2019-05-09 22:58:50

标签: reactjs redux

我正在执行GetList api调用,得到响应后,我将进行另一个api调用。在所有调用完成后,应该发生dispatchUpdateHeader。但是它不起作用。写太多.thens是个好主意吗?

export const getList = (data) => {
  return (dispatch) => {
    const { url, params } = GetList(data.items);
    return fetch(url, params)
      .then(() => {
        dispatch(getSavedItems(data.reqBody));
        const { url1, params1 } = UpdateItemsApi();
        return fetch(url1, params1).then(() => {
          dispatchUpdateHeader();
        });
      });
  };
};

1 个答案:

答案 0 :(得分:0)

您不需要嵌套“ then”。您将需要一个扁平的结构。

fetch(url)
.then(function(response) { 
  return response.json()
})
.then(function(data) {   
  // do stuff with `data`, call second `fetch`
  return fetch(data.anotherUrl)
})
.then(function(response) { 
  return response.json(); 
})
.then(function(data) {
  // do stuff with `data`
})
.catch(function(error) { 
  console.log('Requestfailed', error) 
});

参考:https://stackoverflow.com/a/40981353/4452181