【发布时间】:2019-06-02 16:55:37
【问题描述】:
根据loopback's official docs,方法updateAll有3个参数:where、data、callback,需要callback。
Account.deleteSingleHearingTest = function (req, callback) {
Account.findById(req.accessToken.userId)
.then(account => {
if (!account) {
throw new Error('Cannot find user');
}
return app.models.HearingTest.updateAll({ accountId: account.id, id: req.body.hearingTestId }, { isDeleted: new Date() });
})
.then(() => {
callback(null);
})
.catch(error => {
callback(error);
});
}
我可以看到前两个参数在那里,但是,回调似乎不是方法调用的一部分。回调不应该是 updateAllll 方法的一部分吗?
【问题讨论】:
-
也许他们的文档已经过时了。该代码工作吗?
-
是的,它有效。我正在尝试编写一个新的远程方法,并希望确保我了解它的工作原理/原因
-
查看他们的文档,他们的一些方法支持可选回调,因为它们返回承诺,如果上面的代码有效,这是他们的文档过时的问题。 请记住,如果
updateAll没有返回承诺,.then仍将(在这种情况下错误地)被调用。 -
如果它有效,那么请注意,除非您 需要 使用这样的回调语法,否则返回 thenable 可能更有意义,以便可以使用它
deleteSingleHearingTest(...args).then( ...) -
您缺少使用承诺而不是回调的环回文档:loopback.io/doc/en/lb3/Using-promises.html
标签: javascript node.js loopbackjs loopback