Mongodb 带有回调的Collection.update()返回未定义的

Mongodb 带有回调的Collection.update()返回未定义的,mongodb,asynchronous,meteor,Mongodb,Asynchronous,Meteor,在Meteor中,我使用客户机上Collection.update()(1)的返回值向用户显示消息。该方法在客户端和服务器上都运行 考虑以下方法,该方法按预期工作(返回1): 接下来,考虑下面的方法,它返回未定义< /代码>: Meteor.methods({ updateDocument(documentId) { return Collection.update( documentId, {$set: {updatedBy

在Meteor中,我使用客户机上Collection.update()(
1
)的返回值向用户显示消息。该方法在客户端和服务器上都运行

考虑以下方法,该方法按预期工作(返回
1
):

接下来,考虑下面的方法,它返回<代码>未定义< /代码>:

Meteor.methods({
   updateDocument(documentId) {
        return Collection.update(
            documentId,
            {$set: {updatedBy: this.userId}},
            (error, result) => {
                return 1;
            }
        );
    }
});

我错过了什么?为什么不
updateDocument()
返回
1

当您提供回调函数时,那么
更新
调用是异步的。它不返回任何内容,您的Meteor方法可能会在更新完成之前完成

引述自:

在服务器上,如果不提供回调,则更新块 直到数据库确认写入,或者在 出了点问题。如果确实提供了回调,则update将返回 马上。更新完成后,将使用 失败情况下的单个错误参数,或第二个参数 指示更新失败时受影响文档的数量 成功


当您提供回调函数时,
update
调用是异步的。它不返回任何内容,您的Meteor方法可能会在更新完成之前完成

引述自:

在服务器上,如果不提供回调,则更新块 直到数据库确认写入,或者在 出了点问题。如果确实提供了回调,则update将返回 马上。更新完成后,将使用 失败情况下的单个错误参数,或第二个参数 指示更新失败时受影响文档的数量 成功


好的,谢谢。我想我明白了。现在,我如何让用户知道更新成功?换句话说,如果客户端上的事件函数调用的方法没有返回任何内容,它如何知道文档已成功更新?如果出现错误,同步
update
函数将抛出异常。做一个好的口袋妖怪大师,抓住他们所有人。:)好的,谢谢。我想我明白了。现在,我如何让用户知道更新成功?换句话说,如果客户端上的事件函数调用的方法没有返回任何内容,它如何知道文档已成功更新?如果出现错误,同步
update
函数将抛出异常。做一个好的口袋妖怪大师,抓住他们所有人。:)
Meteor.methods({
   updateDocument(documentId) {
        return Collection.update(
            documentId,
            {$set: {updatedBy: this.userId}},
            (error, result) => {
                return 1;
            }
        );
    }
});