ExpressJS相同的路线同时被多次击中

时间:2019-05-07 19:09:43

标签: node.js express

我同时在节点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);

  }
}

1 个答案:

答案 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还将使所有请求“一次”发生。

我尚未测试此代码,但它应该是您想要的。