Sequelize JS, возвращающий "fillmentValue" с обещаниями - PullRequest
0 голосов
/ 03 августа 2020

Я хотел бы создать массив элементов, используя Sequelize JS и функцию findAll, но у меня возникла проблема.

Запрос сработал, но я получил специальный объект с некоторыми неожиданными свойствами (fulFillmentValue, isFulfilled, isRejected, ...).

введите описание изображения здесь

Мой код:

associatedItems.includingItems = _.map(includeModels, function(includingModel) {
  return includingModel.model.findAll().then( function(items) {
    return {
      items: items,
      reference: includingModel.reference,
      modelName: includingModel.reference.replace(/_/g, '-')
    };
  })
});

1 Ответ

1 голос
/ 03 августа 2020

Функция ниже возвращает Promise для значения, а не фактического значения, которое вы хотите.

function(includingModel) {
  return includingModel.model.findAll().then( function(items) {
    return {
      items: items,
      reference: includingModel.reference,
      modelName: includingModel.reference.replace(/_/g, '-')
    };
  })
}

Следовательно, вы должны получить значение из Promise следующим образом.

promises = _.map(includeModels, function(includingModel) {
  return includingModel.model.findAll().then( function(items) {
    return {
      items: items,
      reference: includingModel.reference,
      modelName: includingModel.reference.replace(/_/g, '-')
    };
  })
});

Promise.all(promises)
  .then(results => {
    associatedItems.includingItems = results;
  });
...