【问题标题】:What is the proper way to make dependent api call in Reactjs Redux Redux-thunk在 Reactjs Redux Redux-thunk 中进行依赖 api 调用的正确方法是什么
【发布时间】:2021-08-22 05:39:45
【问题描述】:

我想在第一次加载时在一个组件中显示数据。我有一个 API 调用,第二个 API 取决于第一个 API 响应。如何管理此调用顺序和错误处理?如果有人有示例链接,那对我来说非常好,因为我是 ReactjsRedux 的新手。

【问题讨论】:

标签: reactjs redux redux-thunk


【解决方案1】:

我有一个例子。我进行了 2 个 API 调用。我需要注册一个用户(第一个请求)和他的合作伙伴。为了注册合作伙伴(第二次请求),我需要从first request response 获取the token,并在第二次请求时将其作为header 传递:

注册函数:

 const register = () => {

    const data = {
      eMail: email,
      password: password,
    };

    const partnerData = {
      firstName: firstName,
      lastName: lastName,
    };

    axios
      .post("/register", data)
      .then((firstResponse) => {
       //do sth
 
          return axios
            .post("/registerPartner", partnerData, {
              headers: { Token: firstResponse.data.token },
            })
            .then((secondResponse) => {
              history.push("/home");
              window.location.reload();
              return secondResponse.data;
            })
            .catch((error) => {
              console.log("Error in second request");
            });
       
      })
      .catch((error) => {
        console.log("Error in first request");
      });
  };

【讨论】:

  • 最好扁平化这个 Promise 链,或者使用async/await。当您使用的代码旨在修复“嵌套地狱”时,为什么要嵌套逻辑?
  • 请告诉我你将如何重写代码。我愿意优化它。 :)
  • 您可以在第一个.then 返回axios.post Promise,然后将嵌套的.then 移动到外链。
  • 谢谢,我会再写一次我的api调用。
猜你喜欢
  • 2019-12-11
  • 1970-01-01
  • 2019-10-20
  • 2019-01-24
  • 2017-04-26
  • 2021-10-28
  • 1970-01-01
  • 2021-08-24
  • 2020-05-05
相关资源
最近更新 更多