【发布时间】:2015-02-20 16:01:21
【问题描述】:
我有多个 Meteor.calls,其中每个方法都依赖于另一个 Meteor 方法的响应。
客户
Meteor.call('methodOne', function(err, resOne){
if(!err){
Meteor.call('methodTwo', resOne, function(err, resTwo){
if(!err){
Meteor.call('methodThree', resTwo, function(err, resThree){
if(err){
console.log(err);
}
})
}
});
}
});
从 Meteor 的文档中我知道
“客户端调用的方法是异步运行的,所以需要通过回调来观察调用的结果。”
我知道我可以在服务器上创建另一个 Meteor 方法来执行使用 Meteor.async 包装的方法“methodOne”、“MethodTwo”、“MethodThree”,或者在没有回调的情况下按顺序执行。但我担心这条路会导致我的流星方法变得臃肿和纠缠,导致意大利面条代码。我宁愿让每个 Meteor 方法都简单,只做一项工作,并找到一种更优雅的方式来链接客户端上的调用。有什么想法,有没有办法在客户端使用 Promises?
【问题讨论】:
标签: javascript asynchronous meteor promise