gpt4 book ai didi

javascript - axios 请求 n 次,其中 n 是先前响应的长度

转载 作者:行者123 更新时间:2023-12-02 22:56:56 26 4
gpt4 key购买 nike

使用 axios,我想将地址转换为各自的坐标。

  1. 从 API 获取地址列表。
  2. 从数字 1 中获取对象 RESPONSE,并将 RESPONSE 的每个地址转换为使用 Google API 进行协调
  3. 然后我想将这些坐标键添加到每个对象响应中。

这是我的尝试,但它不会工作,因为它是异步的。

 let array = [];
axios.get('https://www.data.qld.gov.au/api/3/action/datastore_search?resource_id=346d58fc-b7c1-
4c38-bf4d-c9d5fb43ce7b')
.then((response) => {
const records = response.data.result.records;
records.forEach((record) => {
axios.get('https://maps.googleapis.com/maps/api/geocode/json', {
params: {
address: record.address,
key: GOOGLE_KEY,
}
}).then(response => {
record.response.coordinate;
array.push(record);

});

});

我在想,是否可以根据RESPONSE对象的长度执行n次then((response))?

最佳答案

您可以利用Promise.all以达到预期的结果。

(async () => {
const {
data: {
result: { records }
}
} = await axios.get(
"https://www.data.qld.gov.au/api/3/action/datastore_search?resource_id=346d58fc-b7c1-4c38-bf4d-c9d5fb43ce7b"
);

const coordinates = await Promise.all(
records.map(async (record) => {
const response = await axios.get(
"https://maps.googleapis.com/maps/api/geocode/json",
{
params: {
address: record.address,
key: GOOGLE_KEY
}
}
);

return response.coordinate;
})
);
})();

关于javascript - axios 请求 n 次,其中 n 是先前响应的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57942554/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com