流星与承诺?
答
在目前的Meteor(1.3)中,你不需要Promise包。 改为包含ecmascript包,这将为您提供ES6标准承诺以及“等待”支持,这比承诺更容易理解,并使代码更具可读性。
参见例如https://forums.meteor.com/t/start-using-async-await-instead-of-promises-and-callbacks/17037和https://www.twilio.com/blog/2015/10/asyncawait-the-hero-javascript-deserved.html
答
排序的。流星方法有内置的异步回调:
Meteor.call('myMethod', foo1, function (err, res) {
//this code waits for err or res
})
答
我用FutureJS:
Future = Npm.require('fibers/future');
var myFuture = new Future();
SomeAsynchronousFunction("foo", function(err, res) {
if (err) {
myFuture.throw(err);
} else {
myFuture.return(res);
}
});
return myFuture.wait();
所以,如果你正在做一个GET
要求,更换SomeAsynchronousFunction()...
有:
Meteor.http.call('GET', 'someUrl', function(err, resp) {
if (err) {
myFuture.return(err);
} else {
myFuture.return(resp);
}
});