为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

萧十郎 2018-12-16 14:43:49
react中发请求一般放在生命周期的componentDidMount事件中,但我现在有个需求是要发两个请求,第二个请求的参数是第一个请求的结果。比如第一个请求的结果:state.res1 我如果把请求都直接放在componentDidMount中,第二个请求一开始是获取不到参数的。我现在的做法是第一个请求除了更新state.res1,还会更新一个boolean:state.res1IsCompleted 标识,再把第二个请求放在componentDidUpdate中,然后根据res1IsCompleted这个标识判断要不要发起第二个请求。但总觉得有点怪,如果我的请求依赖过多的话(因为现在在做工作流相关页面,设计的请求会很多),会有一堆的标识状态放在state中。
查看完整描述

1 回答

?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

js 是异步的,肯定拿不到。
给你推荐两个方法。

从你的描述中没有看到redux之类的东西,所以我假设你只有react,调用接口使用的是fetch.

  • 回调

componentDidMount() {
    fetch(url).then(data => data.json()).then(res= {
        fetch(url2, {body: {res}});
    })
}
  • Promise

componentDidMount() {    const data1 = new Promise(resolve => {
        fetch(url).then(res => res.json()).then(data => resolve(data));
    });
    
    data1.then(data => {
        fetch(url2, {body: {data}});
    })
}

还有ES8提供的 async await .


查看完整回答
反对 回复 2018-12-16
  • 1 回答
  • 0 关注
  • 650 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信