axios 调用从第一个 api 获取响应并传递到第二个 api

问题描述 投票:0回答:3
  • 我有两个不同的API。
  • 从第一个 api 响应中,我需要将 lowId 传递给第二个 api 请求以获取 sportSpecialty。
  • 我有两个不同的操作需要不同的 api。
  • 但问题是我不知道如何将值从第一个 api 传递到第二个 api。
  • 调试了代码,这是我获取id的地方

    .then(response => {
                    response.data.helpFar.map(entity => {
                        console.log(
                            'fetchhighRelationshipByBalanceId response--->',
                            entity
                        );
                    });

  • 研究并找到了此链接,但仍然没有帮助我。

axios get - 多个 api 调用,从第一个 api 到后续调用的响应

Axios:链接多个 API 请求

  • 在下面提供我的代码片段和 json 响应。

第一个API调用

export function fetchhighRelationshipByBalanceId(
    lowId,
    isHistory,
    callBack
) {
    console.log('fetchhighRelationshipByBalanceId--->');
    return dispatch => {
        this._source = axios.CancelToken.source();
        return axios
            .get(
                `http://localhost:1000/star/dull/?lowId=${lowId}&isHistory=${isHistory}`,
                {
                    cancelToken: this._source.token,
                }
            )
            .then(response => {
                response.data.helpFar.map(entity => {
                    console.log(
                        'fetchhighRelationshipByBalanceId response--->',
                        entity
                    );
                });

                callBack(response);
            })
            .catch(error => {
                if (axios.isCancel(error)) {
                    console.log('-- Request canceled', error.message);
                } else {
                    console.log('-- Error', error.message);
                }
            });
    };
}

第二次API调用

export function fetchlowRelationshipByBalanceId(
    lowId,
    isHistory,
    callBack
) {
    console.log('fetchlowRelationshipByBalanceId--->');
    return dispatch => {
        this._source = axios.CancelToken.source();
        return axios
            .get(
                `http://localhost:1000/star/bright/?lowId=${lowId}&isHistory=${isHistory}`,
                {
                    cancelToken: this._source.token,
                }
            )
            .then(response => {
                callBack(response);
            })
            .catch(error => {
                if (axios.isCancel(error)) {
                    console.log('-- Request canceled', error.message);
                } else {
                    console.log('-- Error', error.message);
                }
            });
    };
}

第一个 API 响应

http://talk.com/jujuj/766723237623/dulls

{
  "helpFar" : [ {
    "lowId" : 78787878,
    "lowName" : "fdjdfndfdfknkdfs",
    "lowStartDate" : "2015-12-10",
    "lowEndDate" : "2016-01-07",
    "finger" : [ {
      "sport2" : 5656565656232323323232332233775,
      "sport3" : "fdjdfndfdfknkdfs",
      "sport4" : "sdfsddddddddddd",
      "sport5" : "898989898989123123123123123123123123123123123123123123123",
      "sport1" : "reererer",
      "fdkdlmkdflkdf211212" : "2010-07-01"
    } ]
  }, {
    "lowId" : 7878787878787878787877252,
    "lowName" : " =er8989erer8eru8989uer89er89gu89",
    "lowStartDate" : "2015-12-10",
    "lowEndDate" : "2016-01-07",
    "finger" : [ {
      "sport2" : 2378782356237823787878127884818,
      "sport3" : "jkjkjksdjkdsjksdjk MEDICAL sdfsddddddddddd OF ",
      "sport4" : "sdsdsdsdsdsdsdsdsdsdsdsda",
      "sport5" : "90er90er9090re90er90",
      "sport1" : "reerer",
      "fdkdlmkdflkdf211212" : "237878235623782378787812787-10-30"
    }, {
      "sport2" : 5656565656232323323232332233294,
      "sport3" : "jkjkjksdjkdsjksdjk fdfd",
      "sport4" : "sdsdsdsdsdsdsdsdsdsdsdsda",
      "sport5" : "90er90er9090re90er90",
      "sport1" : "reerer",
      "fdkdlmkdflkdf211212" : "2010-06-30"
    }, {
      "sport2" : 5656565656232323323232332233779,
      "sport3" : " =er8989erer8eru8989uer89er89gu89",
      "sport4" : "sdfsddddddddddd",
      "sport5" : "90er90er9090re90er90",
      "sport1" : "ererer",
      "fdkdlmkdflkdf211212" : "2010-07-01"
    }, {
      "sport2" : 20139872,
      "sport3" : "sdsdsdsd",
      "sport4" : "sdsdsdsdsdsdsdsdsdsdsdsda",
      "sport5" : "90er90er9090re90er90",
      "sport1" : "erererer",
      "fdkdlmkdflkdf211212" : "2018-10-27"
    } ]
  }, {
    "lowId" : 7878787878787878787885126,
    "lowName" : "erauioioioioioioio =er8989erer8eru8989uer89er89gu89",
    "lowStartDate" : "2010-07-01",
    "lowEndDate" : "9999-12-31",
    "finger" : [ {
      "sport2" : 5656565656232323323232332233290,
      "sport3" : "jkjkjksdjkdsjksdjk erauioioioioioioiofdfd",
      "sport4" : "sdsdsdsdsdsdsdsdsdsdsdsda",
      "sport5" : "898989898989",
      "sport1" : "erererer",
      "fdkdlmkdflkdf211212" : "2010-06-30"
    }, {
      "sport2" : 5656565656232323323232332233778,
      "sport3" : "erauioioioioioioio =er8989erer8eru8989uer89er89gu89",
      "sport4" : "sdfsddddddddddd",
      "sport5" : "898989898989",
      "sport1" : "rereer",
      "fdkdlmkdflkdf211212" : "2010-07-01"
    } ]
  }, {
    "lowId" : 7878787878787878787885115,
    "lowName" : "eruiaeruiruieeruiuier",
    "lowStartDate" : "2010-06-30",
    "lowEndDate" : "9999-12-31",
    "finger" : [ {
      "sport2" : 5656565656232323323232332233279,
      "sport3" : "jkjkjksdjkdsjksdjk LAKE SHOREfdfd",
      "sport4" : "sdsdsdsdsdsdsdsdsdsdsdsda",
      "sport5" : "oiioioioio",
      "sport1" : "erererer",
      "fdkdlmkdflkdf211212" : "2010-06-30"
    } ]
  }, {
    "lowId" : 7878787878787878787800157,
    "lowName" : "jkjkjksdjkdsjksdjk df dfdfsvvf",
    "lowStartDate" : "2017-12-04",
    "lowEndDate" : "9999-12-31",
    "finger" : [ {
      "sport2" : 2378782356237823787878127800170,
      "sport3" : "jkjkjksdjkdsjksdjk df dfdfsvvf",
      "sport4" : "sdsdsdsdsdsdsdsdsdsdsdsda",
      "sport5" : "7676767676",
      "sport1" : "erererer",
      "fdkdlmkdflkdf211212" : "237878235623782378787812784-01-01"
    }, {
      "sport2" : 2378782356237823787878127800791,
      "sport3" : "jkjkjksdjkdsjksdjk vccvxcx",
      "sport4" : "sdsdsdsdsdsdsdsdsdsdsdsda",
      "sport5" : "7676767676",
      "sport1" : "errerereer",
      "fdkdlmkdflkdf211212" : "237878235623782378787812784-01-01"
    }, {
      "sport2" : 2378782356237823787878127801096,
      "sport3" : "jkjkjksdjkdsjksdjk dfadfadfdffdd",
      "sport4" : "sdsdsdsdsdsdsdsdsdsdsdsda",
      "sport5" : "7676767676",
      "sport1" : "errereer",
      "fdkdlmkdflkdf211212" : "237878235623782378787812784-01-01"
    }, {
      "sport2" : 20128386,
      "sport3" : "erreerre",
      "sport4" : "sdsdsdsdsdsdsdsdsdsdsdsda",
      "sport5" : "7676767676",
      "sport1" : "erreerer",
      "fdkdlmkdflkdf211212" : "1947-12-01"
    }, {
      "sport2" : 2013787878787878787878784,
      "sport3" : "jkjkjksdjkdsjksdjk df dfdfsvvf",
      "sport4" : "sdfsddddddddddd",
      "sport5" : "7676767676",
      "sport1" : "ererererer",
      "fdkdlmkdflkdf211212" : "2017-12-04"
    } ]
  }, {
    "lowId" : 7878787878787878787800159,
    "lowName" : "jkjkjksdjkdsjksdjk dfdffffffffffffffff",
    "lowStartDate" : "237878235623782378787812786-07-27",
    "lowEndDate" : "9999-12-31",
    "finger" : [ {
      "sport2" : 2378782356237823787878127800172,
      "sport3" : "jkjkjksdjkdsjksdjk AND UNIVERSITY OF FLORIDA HEALTH CARE NTWK",
      "sport4" : "sdsdsdsdsdsdsdsdsdsdsdsda",
      "sport5" : "r9we9rew9090q90",
      "sport1" : "reererer",
      "fdkdlmkdflkdf211212" : "237878235623782378787812784-01-01"
    }, {
      "sport2" : 2378782356237823787878127800477,
      "sport3" : "GENERAL SURGERY AT AYERS",
      "sport4" : "sdsdsdsdsdsdsdsdsdsdsdsda",
      "sport5" : "r9we9rew9090q90",
      "sport1" : "erererer",
      "fdkdlmkdflkdf211212" : "237878235623782378787812784-01-01"
    }, {
      "sport2" : 2378782356237823787878127800558,
      "sport3" : "jkjkjksdjkdsjksdjk HOMECARE",
      "sport4" : "sdsdsdsdsdsdsdsdsdsdsdsda",
      "sport5" : "r9we9rew9090q90",
      "sport1" : "ererererer",
      "fdkdlmkdflkdf211212" : "237878235623782378787812784-01-01"
    }, {
      "sport2" : 2378782356237823787878127801313,
      "sport3" : "ALACHUA GEN HOSPTIAL SKILLED NURSING UNIT",
      "sport4" : "sdsdsdsdsdsdsdsdsdsdsdsda",
      "sport5" : "r9we9rew9090q90",
      "sport1" : "erreerer",
      "fdkdlmkdflkdf211212" : "237878235623782378787812784-01-01"
    }, {
      "sport2" : 2378782356237823787878127801746,
      "sport3" : "jkjkjksdjkdsjksdjk REHAB HOSPITAL",
      "sport4" : "sdsdsdsdsdsdsdsdsdsdsdsda",
      "sport5" : "r9we9rew9090q90",
      "sport1" : "ererererer",
      "fdkdlmkdflkdf211212" : "237878235623782378787812784-01-01"
    }, {
      "sport2" : 2378782356237823787878127802174,
      "sport3" : "jkjkjksdjkdsjksdjk MEDICAL sdfsddddddddddd MAGNOLIA PARKE",
      "sport4" : "sdfsddddddddddd",
      "sport5" : "r9we9rew9090q90",
      "sport1" : "ererreerer",
      "fdkdlmkdflkdf211212" : "1999-01-01"
    }, {
      "sport2" : 2378782356237823787878127802227,
      "sport3" : "jkjkjksdjkdsjksdjk dfdffffffffffffffff",
      "sport4" : "sdfsddddddddddd",
      "sport5" : "r9we9rew9090q90",
      "sport1" : "rerereerererre",
      "fdkdlmkdflkdf211212" : "1999-01-01"
    }, {
      "sport2" : 2378782356237823787878127807706,
      "sport3" : "jkjkjksdjkdsjksdjk HOSPITAL",
      "sport4" : "idfosaooooooooooooooo",
      "sport5" : "r9we9rew9090q90",
      "sport1" : "ererererer",
      "fdkdlmkdflkdf211212" : "237878235623782378787812784-01-01"
    }, {
      "sport2" : 2378782356237823787878127807707,
      "sport3" : "ererererer INC",
      "sport4" : "idfosaooooooooooooooo",
      "sport5" : "r9we9rew9090q90",
      "sport1" : "erererer",
      "fdkdlmkdflkdf211212" : "237878235623782378787812784-01-01"
    }, {
      "sport2" : 2378782356237823787878127807708,
      "sport3" : "jkjkjksdjkdsjksdjkfdfdf dfffffffffff",
      "sport4" : "idfosaooooooooooooooo",
      "sport5" : "r9we9rew9090q90",
      "sport1" : "ererreer",
      "fdkdlmkdflkdf211212" : "237878235623782378787812784-01-01"
    }, {
      "sport2" : 2378782356237823787878127807709,
      "sport3" : "jkjkjksdjkdsjksdjk HOME CARE",
      "sport4" : "idfosaooooooooooooooo",
      "sport5" : "r9we9rew9090q90",
      "sport1" : "erreerer",
      "fdkdlmkdflkdf211212" : "237878235623782378787812784-01-01"
    }, {
      "sport2" : 2378782356237823787878127807710,
      "sport3" : "jkjkjksdjkdsjksdjk dfdfdfdffd",
      "sport4" : "idfosaooooooooooooooo",
      "sport5" : "r9we9rew9090q90",
      "sport1" : "erreerre",
      "fdkdlmkdflkdf211212" : "237878235623782378787812784-01-01"
    }, {
      "sport2" : 2378782356237823787878127807711,
      "sport3" : "jkjkjksdjkdsjksdjk HOSPITAL (DME)",
      "sport4" : "idfosaooooooooooooooo",
      "sport5" : "r9we9rew9090q90",
      "sport1" : "R6093",
      "fdkdlmkdflkdf211212" : "237878235623782378787812784-01-01"
    }, {
      "sport2" : 2378782356237823787878127807712,
      "sport3" : "jkjkjksdjkdsjksdjk dsdsdsdsd",
      "sport4" : "idfosaooooooooooooooo",
      "sport5" : "r9we9rew9090q90",
      "sport1" : "erererer",
      "fdkdlmkdflkdf211212" : "237878235623782378787812784-01-01"
    }, {
      "sport2" : 2378782356237823787878127877859,
      "sport3" : "FCPA/jkjkjksdjkdsjksdjk dfsdfdfdfdfdf",
      "sport4" : "idfosaooooooooooooooo",
      "sport5" : "r9we9rew9090q90",
      "sport1" : "reerreer",
      "fdkdlmkdflkdf211212" : "237878235623782378787812786-07-27"
    }, {
      "sport2" : 5656565656232323323232332238954,
      "sport3" : "jkjkjksdjkdsjksdjk VISTA , jkjkjksdjkdsjksdjk AT VISTA",
      "sport4" : "sdsdsdsdsdsdsdsdsdsdsdsda",
      "sport5" : "r9we9rew9090q90",
      "sport1" : "erreerer",
      "fdkdlmkdflkdf211212" : "2011-10-21"
    }, {
      "sport2" : 20116360,
      "sport3" : "jkjkjksdjkdsjksdjk dfdffffffffffffffff",
      "sport4" : "sdfsddddddddddd",
      "sport5" : "r9we9rew9090q90",
      "sport1" : "erererer",
      "fdkdlmkdflkdf211212" : "2014-11-19"
    } ]
  } ],
  "highId" : "766723237623",
  "highName" : "jkjkjksdjkdsjksdjk"
}

第二个 API 响应

http://talk.com/jujuj/78787878/brights

{
  "lowdfdfdfdfs" : [ {
    "sport2" : 5656565656232323323232332233775,
    "sport3" : "fdjdfndfdfknkdfs",
    "sport4" : "sdfsddddddddddd",
    "sport5" : "898989898989123123123123123123123123123123123123123123123",
    "sport1" : "000WD",
    "sportRole" : "Specialist",
    "sportSpecialty" : "Multi-Specialty Physician sdfsddddddddddd-19323787823562378237878781278000X",
    "fdkdlmkdflkdf211212" : "2010-07-01",
    "paymentPreference" : {
      "dfmklId" : 78787878,
      "dfmklName" : "fdjdfndfdfknkdfs",
      "dfmklTaxId" : "898989898989123123123123123123123123123123123123123123123",
      "dfmklStartDate" : "2010-07-13",
      "dfmklEndDate" : "9999-12-31",
      "dfmkl1" : "000WD",
      "dfmklAddress" : {
        "addressLine1Text" : "PO BOX 11414",
        "addressLine3Text" : "Belfast, ME 04915",
        "addressLine4Text" : "Waldo"
      }
    }
  } ],
  "highId" : "766723237623",
  "highName" : "jkjkjksdjkdsjksdjk"
}
javascript html css reactjs redux
3个回答
1
投票

你的代码比你的解释一样复杂。

从这段代码开始

function fetchStar({type, lowId, isHistory}) {
    let {token}  = axios.CancelToken.source();
    let body = { cancelToken: token };
    let url = `http://localhost:1000/star/${type}/?lowId=${lowId}&isHistory=${isHistory}`;
    return axios.get(url, body);
}

你不需要那两个蹩脚的功能。

就这样使用

fetchStar({type:'dull',lowId:'???', isHistory:false})
.then( response => {
    let whatEverYouWant = null; //find value you need from response.data
    return fetchStar({type:'bright', lowId:whatEverYouWant, isHistory:false});
})
.catch( console.error );

0
投票

将你的承诺串联起来。这是一个示例,您应该能够根据您的需求进行调整。

const firstPromise = () => Promise.resolve({foo: 'bar'});
const secondPromise = bar => Promise.resolve(bar + 'baz');

firstPromise()
  .then(data => data.foo)
  .then(secondPromise)
  .then(data => {
    console.log(data);  // 'barbaz'
  })

0
投票

您可以通过 FlowTestAI 使用简单的拖放操作轻松构建 API 请求链https://github.com/FlowTestAI/FlowTest

它不仅可以让您链接请求,还可以帮助您添加额外的逻辑,就像您的情况一样,您可以从第一个 api 请求中提取

lowId
并将其作为参数传递给第二个 api 请求以获取
sportSpecialty

© www.soinside.com 2019 - 2024. All rights reserved.