Существует следующий код:Node.js promisses цепочки
router.put('/:id', function(req, res) {
models.Task.find(req.params.id).then(function(task) {
task.updateAttributes({
title: req.body.title,
description: req.body.description
}).then(function(task) {
res.json(task);
})
});
});
Я пытаюсь заново фактор этого кода следующим образом:
router.put('/:id', function(req, res) {
models.Task.find(req.params.id).then(function(task) {
task.updateAttributes({
title: req.body.title,
description: req.body.description
})
}).then(function(task) {
res.json(task);
});
});
В первом случае я вижу правильный JSON выход, но во втором я могу видеть пустой вывод. Зачем?
Пожалуйста, скажите, как я могу проверить, не задана ли задача для NULL для обновления атрибутов? Благодаря! – malcoauri
@malcoauri: * Может * 'task' быть' null'? (Я не знаком с данным lib, но я ожидал бы, что отклоню обещание, а не разрешу его с помощью «null».) Если это так, достаточно простого 'if (task == null)'. В этом случае вы, скорее всего, вернете задачу, а не вернете обещание от 'task.updateAttributes'. Последующие обработчики 'then' получат' null' (немедленно). –