Внесение изменений в .then () в обещании - PullRequest
0 голосов
/ 10 мая 2018

У меня есть этот контроллер секвелирования ниже:

const Category = require('../models').category;

module.exports = {
  list(req, res) {
    return Category
      .all({attributes: ['title']})
      .then(categories => res.status(200).send(categories))
      .catch(error => res.status(400).send(error));
  }
};

По сути, возвращая Category.all({attributes: ['title']}) результатов в этом массиве:

[
  {"title": "video"},
  {"title": "gif"},
  {"title": "website"}
]

Я хочу добавить объект {"title": "all"} в начало массива, выполнив что-то вроде этого:

const Category = require('../models').category;

module.exports = {
  list(req, res) {
    return Category
      .all({attributes: ['title']})
      .then(categories => 
        categories.unshift({"title": "all"})
        res.status(200).send(categories)
      )
      .catch(error => res.status(400).send(error));
  }
};

Но я знаю, что это не совсем правильно. Как при обработке обещаний и оператора .then() можно ли редактировать массив категорий в операторе .then()? Спасибо!

1 Ответ

0 голосов
/ 10 мая 2018
.then(categories => {
        categories.unshift({"title": "all"})
        res.status(200).send(categories)
      })

Просто нужно добавить фигурные скобки вокруг кода в операторе then, чтобы это не было подразумеваемым возвращением.

...