@YuryTarabanko спасибо за отличный ответ

ользую.map наметить новый объект и добавить старую цену на карту.

Я использую Async / Await с моими картами данных, вот как выглядит мой код:

let datasets = await changes.map(async (data) => {
  let products = {};
  let last = await models.prices.findOne({
    where: {
        productId: data.productId,
        sourceId: data.sourceId
    },
    order: [['createdAt', 'DESC']],
    limit: 1,
    offset: 1
  });

  products.name   = data.product.name;
  products.price  = data.price;
  products.sku    = data.product.sku;
  products.source = data.source.name;
  products.link   = data.link;
  products.diff   = last.price;


  return products;
});

changes все изменения цен, найденные за последние 24 часа.

last содержит предыдущий раз, когда было найдено изменение цены конкретного продукта.

return products не ждет, поэтому я получаю спамPromise { <pending> } Сообщения. Если я используюconsole.log(last) это работает внутри, но я не могу найти правильный способ замедлить возврат.

products.diff = last.price это один кусок, который должен заполнить, чтобы это было действительным. Есть идеи?

Ответы на вопрос(1)

Решение Вопроса

await ждет обещаний, ноArray.prototype.map возвращает новый массив обещаний. Вы должны обернуть этоPromise.all

  let products = {};
  let last = await models.prices.findOne({
    where: {
        productId: data.productId,
        sourceId: data.sourceId
    },
    order: [['createdAt', 'DESC']],
    limit: 1,
    offset: 1
  });

  products.name   = data.product.name;
  products.price  = data.price;
  products.sku    = data.product.sku;
  products.source = data.source.name;
  products.link   = data.link;
  products.diff   = last.price;


  return products;
}));
 AL Tegani11 дек. 2018 г., 15:08
@YuryTarabanko спасибо за отличный ответ
 Miles Collier06 сент. 2017 г., 12:21
Конечно! Спасибо, работает отлично. У меня есть время ожидания, затем я отвечу на ваш вопрос.
 Yury Tarabanko06 сент. 2017 г., 12:21
@MilesCollier Нет проблем :)
 Ashwin J Chhetri27 июн. 2018 г., 11:40
я мог бы спасти свои два дня, если бы нашел этот ответ раньше. Спасибо Юрий.

Ваш ответ на вопрос