2
有下面的代碼: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第一案輸出,但在第二個我可以看到空輸出。爲什麼?
請告訴我,如何檢查任務是否爲空以更新屬性?謝謝! – malcoauri
@malcoauri:* *任務可以'空'嗎? (我並不熟悉這個lib,但我希望能夠拒絕這個promise,而不是用'null'解決它。)如果是這樣,一個簡單的'if(task == null)'就足夠了。在這種情況下,您可能會'返回任務'而不是從'task.updateAttributes'返回承諾。隨後的'then'處理程序將立即得到'null'。 –