meteor,如何将callback和错误传递给调用方法

在我的Meteor.methods我有

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

我想按照David Weldon的build议在这里创build插入模型。 我的模型看起来像这样:

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

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

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

如何在方法中使用callback和error handling? 我希望能够在Post插入成功时执行代码。

查看collection.insert的文档:

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

参数

doc对象

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

callback函数

可选的。 如果存在,用一个错误对象作为第一个参数调用,如果没有错误,则_id作为第二个参数。

据我所知,如果执行成功,你想执行一个callback函数。 鉴于这些信息,下面是我如何构造代码:

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

你实际上不需要返回任何东西。 您可以执行callback函数并适当地传递参数。 然后你可以用下面的代码调用函数:

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