gpt4 book ai didi

javascript - 如何进行多个 api 调用 Node.js Promise

转载 作者:行者123 更新时间:2023-12-03 00:53:18 28 4
gpt4 key购买 nike

我对 JavaScript 中的 Promise 和异步编程很陌生,我正在尝试对 Node.js 中的 Google map Places API 进行多个 API 调用,然后在收到所有数据后将数据发送到客户端。但是,我收到某种语法错误,指出参数列表后缺少 ) 。抱歉,如果我问了一个愚蠢的问题,我似乎无法弄清楚这个问题。谢谢您的帮助!

const fetch = require('node-fetch');

module.exports = (app) => {

app.post('/search-champ', (req, res) => {


console.log(req);
let lat = req.body.param.lat; //before: req.query.lat it's wrong

let long = req.body.param.long;
console.log(lat);

const apiId = 'AIzaSyAeEPop5mofzDJhytOEMtxXaGWFqGB4Q3M';
const urls = [

'https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=' + lat + ',' + long + '&rankby=distance&type=department_store&key=AIzaSyAeEPop5mofzDJhytOEMtxXaGWFqGB4Q3M',

'https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=' + lat + ',' + long + '&rankby=distance&type=food&key=AIzaSyAeEPop5mofzDJhytOEMtxXaGWFqGB4Q3M'
];


Promise.all(urls.map(url =>


fetch(url)
.then(checkStatus)


.then(data => {

console.log(data)
res.send({
data

});
})

}).catch(err => {
res.redirect('/error');
});

function checkStatus(response) {
if (response.ok) {
return Promise.resolve(response);
} else {
return Promise.reject(new Error(response.statusText));
}
}




})
}

最佳答案

在 javascript 中获取返回一个响应 promise 对象,您必须对其调用 json 方法。将您的 checkStatus 方法更改为此。

function checkStatus(response) {
if (response.ok) {
return Promise.resolve(response.json());
} else {
return Promise.reject(new Error(response.statusText));
}
}

关于javascript - 如何进行多个 api 调用 Node.js Promise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52954273/

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