小编Nuv*_*nnu的帖子

取消阻止Meteor.logout并登录

我在服务器端有两个方法,如下所示:

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;
  }
});
Run Code Online (Sandbox Code Playgroud)

从客户端(使用浏览器控制台)调用这些方法时,它们工作正常(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
});
Run Code Online (Sandbox Code Playgroud)

但是,当有一个会话并且我们调用时Meteor.logout(fn),callback(fn)将在foo完成之后等待.

我不希望这样.我希望这个logout方法能够像bar(不等待完成foo,但立即工作)一样工作. …

javascript timeout fiber meteor

2
推荐指数
1
解决办法
989
查看次数

在循环中重新定义变量不会使其未定义

具有以下for循环:

for (var i = 0; i < 3; ++i) {
    console.log(i, p);
    var p;
    p = 42;
}
Run Code Online (Sandbox Code Playgroud)

我期待输出为:

0 undefined
0 undefined
0 undefined
Run Code Online (Sandbox Code Playgroud)

但实际上,输出是:

0 undefined
0 42
0 42
Run Code Online (Sandbox Code Playgroud)

由于我们正在使用var p(重新声明p)下一行,为什么行中没有p未定义(总是)console.log

javascript loops for-loop redeclaration

0
推荐指数
1
解决办法
118
查看次数

标签 统计

javascript ×2

fiber ×1

for-loop ×1

loops ×1

meteor ×1

redeclaration ×1

timeout ×1