我同时在节点ExpressJS中多次调用相同的路由URL,然后一个请求的值将覆盖另一个请求。
赞:
api/getdata/12
api/getdata/15
这里ID
12的数据进入请求ID
15的内部,
第一个请求具有这样的循环:
var result= [];
if(activityResult && activityResult.status!="error"){
for (activity of activityResult) {
var dataList = await somefunction(activity);
result.push(dataList);
}
}
答案 0 :(得分:0)
这是await
,没有按照您的想法做。您将需要一些更高级的东西。试试这个:
const results = async () => {
if ( activityResult && activityResult.status !== "error" ) {
return Promise.all(
activityResult.map( activity =>
return new Promise( async ( resolve, reject ) => {
try {
const resolvedActivity = await someFunction( activity )
resolve( resolvedActivity )
} catch ( error ) {
reject( error )
}
})
)
)
}
return []
}
这样,您可以将所有结果放在一个数组中。 Promise.all
还将使所有请求“一次”发生。
我尚未测试此代码,但它应该是您想要的。