Javascript Do axios请求n次,其中n是以前响应的长度
使用axios,我想将地址转换为各自的坐标Javascript Do axios请求n次,其中n是以前响应的长度,javascript,node.js,express,axios,Javascript,Node.js,Express,Axios,使用axios,我想将地址转换为各自的坐标 从API获取地址列表 从数字1获取对象响应,并将响应的每个地址转换为 使用谷歌API进行协调 然后我想将这些坐标键添加到每个对象响应中 这是我的尝试,但它无法工作,因为它是异步的 let array = []; axios.get('https://www.data.qld.gov.au/api/3/action/datastore_search?resource_id=346d58fc-b7c1- 4c38-bf4d-c9d5fb
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);
});
});
我在想,是否可以根据响应对象的长度执行then((响应))n次?您可以利用它来实现期望的结果
(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;
})
);
})();