流星,如何将回调和错误传递给调用方方法

Meteor, how to pass callback and error to caller method

本文关键字:方方法 调用 方法 回调 错误 流星      更新时间:2023-09-26

在我的流星方法中,我有

var post= Posts.insert({...},  function(err,docsInserted){
  Posts.update({...} , {...});
});

我想按照大卫·韦尔登的建议创建一个插入模型。我的模型如下所示:

_.extend(Posts, {
    ins:function (docID){
      return  Posts.insert({...});
    }
});

在我的方法中,我有这个:

var post= Posts.ins(docID,  function(err,docsInserted){
  Posts.update({...} , {...});
});

如何在方法中使用回调和错误处理?我希望能够在成功插入帖子时执行代码。

查看 collection.insert 的文档:

在集合中插入文档。返回其唯一_id。

参数

文档对象

要插入的文档。可能还没有_id属性,在这种情况星会为你生成一个。

回调函数

自选。如果存在,则使用 error 对象作为第一个参数进行调用,如果没有错误,则以 _id 作为第二个参数进行调用。

据我了解,如果成功执行,您希望执行回调函数ins。鉴于这些信息,以下是我如何构建代码:

_.extend(Posts, {
    ins:function (docID, callback){
      Posts.insert({...}, function( error, id ) {
          if( error ) {
            callback( error, null );
          } else {
            callback( null, id );
          }
      });
    }
});

您实际上不需要返回任何内容。 您只需执行回调函数并适当地传递参数即可。然后,您可以使用以下代码调用该函数:

Posts.ins(docID,  function(err,docsInserted){
  if( error ) {
    // Handle error.
  } else {
    Posts.update({...} , {...});
  }
});