ExpressJS на одни и те же маршруты попадают несколько раз одновременно - PullRequest
1 голос
/ 07 мая 2019

Я вызываю один и тот же URL-адрес маршрута несколько раз в узле ExpressJS одновременно, тогда значение одного запроса переопределяет другой запрос.

Как:

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 голосов
/ 08 мая 2019

Это 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 также сделает все запросы «мгновенными».

Я не проверял этот код, но он должен быть тем, что вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...