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({...} , {...}); } });