React中一个请求依赖于另一个请求的结果

#1

https://segmentfault.com/q/1010000016964258

react中发请求一般放在生命周期的componentDidMount事件中,但我现在有个需求是要发两个请求,第二个请求的参数是第一个请求的结果。

比如第一个请求的结果:state.res1 我如果把请求都直接放在componentDidMount中,第二个请求一开始是获取不到参数的。

我现在的做法是第一个请求除了更新state.res1,还会更新一个boolean:state.res1IsCompleted 标识,再把第二个请求放在componentDidUpdate中,然后根据res1IsCompleted这个标识判断要不要发起第二个请求。

但总觉得有点怪,如果我的请求依赖过多的话(因为现在在做工作流相关页面,设计的请求会很多),会有一堆的标识状态放在state中。

#2

回调函数呗,写多了就是函数嵌套了,这也是promise诞生的原因

#3

用promise

request1().then(()=>{
// …
request2().then(()=>{
// …
})
})

#4

promise函数是一种比较好的处理方式,可以在配合yield;也可以使用async与await组合;