Javascript:无法一起获得Promises.all响应

时间:2017-06-14 17:19:48

标签: javascript reactjs promise redux response

我使用React-Redux操作立即获得一些承诺响应。事实是我需要在一个组合响应中链接这些响应。 我有一个解析JSON响应的函数。

例如:

Promise.all([
      fetch('some_backend_resource'),
      fetch('another_backend_resource')])
.then(([response1, response2]) => {
   parseJSON(response1).then(resp1 => {
     // here I dispatch to another function the value of resp1
   });
   parseJSON(response2).then(resp2 => {
     // here I dispatch to another function the value of resp2         
   });
})

然后我将resp1和resp2值传递给它们各自的reducers并返回到我尝试将它们放在一起的视图组件中,但有时它不起作用,因为resp1 prop在resp2 prop之前得到ComponentDidmount。 如何将它们组合成单个响应,然后将其传递给视图组件?

1 个答案:

答案 0 :(得分:1)

你的问题并不完全清楚。如果要在分派之前解析两个响应,那么最简单的方法是将解析链接到fetch并在结果上使用Promise.all

Promise.all([
  fetch('some_backend_resource').then(r => parseJSON(r)),
  fetch('another_backend_resource').then(r => parseJSON(r))])
.then(([resp1, resp2]) => {
   // dispatch resp1 & resp2
});