Javascript 如何使for循环等待异步函数
我正在向predicthq API发出请求Javascript 如何使for循环等待异步函数,javascript,node.js,asynchronous,Javascript,Node.js,Asynchronous,我正在向predicthq API发出请求 app.get(“/test”,(请求、回复)=>{ //[0]是经度 请求。获取(“https://api.predicthq.com/v1/events/?q=Minnesota&limit=10", { 标题 },(错误,数据)=>{ var results=JSON.parse(data.body).results; var serverRes=[]; 对于(结果中的var i){ getGeo(结果[i]。位置[1],结果[i]。位置[0]
app.get(“/test”,(请求、回复)=>{
//[0]是经度
请求。获取(“https://api.predicthq.com/v1/events/?q=Minnesota&limit=10", {
标题
},(错误,数据)=>{
var results=JSON.parse(data.body).results;
var serverRes=[];
对于(结果中的var i){
getGeo(结果[i]。位置[1],结果[i]。位置[0])。然后(v=>{
serverRes[i]=v;
})
}//for循环结束
res.send(serverRes)
});//请求调用结束
}); //通话结束
//异步函数
函数getGeo(横向、纵向){
返回新承诺(解决=>{
反向地理编码器({
拉特:拉特,
朗:长
},函数(err,res){
解决(res)
});
});
}
$(文档).ready(函数(){
$(“按钮”)。在(“单击”,()=>{
控制台日志(“点击按钮”);
$.get(“/test”,函数(数据、状态){
console.log(“数据”,数据)
});
});//单击按钮的结尾
});
使用for
循环将这些承诺放入一个数组,然后使用Promise.all
等待它们解析
var results = JSON.parse(data.body).results;
var geoPromises = [];
for (var i in results) {
var promise = getGeo(results[i].location[1], results[i].location[0]);
geoPromises.push(promise);
}
Promise.all(geoPromises).then(vs => {
res.send(vs);
});
使用
for
循环将这些承诺放入数组,然后使用Promise.all
等待它们解析
var results = JSON.parse(data.body).results;
var geoPromises = [];
for (var i in results) {
var promise = getGeo(results[i].location[1], results[i].location[0]);
geoPromises.push(promise);
}
Promise.all(geoPromises).then(vs => {
res.send(vs);
});
你试过了吗?看着它,我想这对你来说是可行的
$(文档).ready(函数(){
})) 你试过了吗?看着它,我想这对你来说是可行的
$(文档).ready(函数(){
}))