我在服务器端有两种方法,如下所示:
var Future = require("fibers/future");
Meteor.methods({
foo: function () {
this.unblock();
var f = new Future();
setTimeout(function () {
f.return(42);
}, 10000);
return f.wait();
},
bar: function () {
return 43;
}
});
从客户端调用这些方法时(使用浏览器控制台),它们工作正常(foo等待 10 秒,然后bar立即工作):
Meteor.call("foo", function (err, data) {
console.log(err || data);
// After 10 seconds: 42
});
Meteor.call("bar", function (err, data) {
console.log(err || data);
// Very quick (*instantly*): 43
});
但是,当有会话并且我们调用Meteor.logout(fn)时,回调 ( fn) 将在foo完成后等待。
我不想要那个。我希望该logout方法能够正常工作bar(不等待完成foo,而是立即工作)。
我怎样才能做到这一点?有没有办法解除封锁 logout或类似的东西?登录操作以相同的方式(当前)工作:它等待直到foo发送响应。