【问题标题】:Multiple calls to same Meteor method in for loop在 for 循环中多次调用相同的 Meteor 方法
【发布时间】:2017-07-11 08:28:39
【问题描述】:

使用 Meteor 和 AngularJS,我有以下设置:

ctrl.js

for(var i = 0; i < result.length; i++){
    Meteor.call('serverMethod', arg1, arg2, function(err, res){
        console.log(res);
    });
}

methods.js

'serverMethod' (arg1, arg2) {
    return HTTP.call("GET", "http://example.com/foo/var");
}

目标是,对于结果中的每个元素,它将调用服务器上的 Meteor 方法,该方法将发出 HTTP GET 请求,返回一些数据,然后记录该数据。

这一切都有效,但是它一次只做一个(发出请求,等待结果,发出下一个请求)。我以为这一切都会异步运行?

我在这里错过了什么/我可以改进什么?

【问题讨论】:

  • 只是为了在下面对 Derrick 的回答添加一些解释:您期望它在一般意义上异步运行是正确的,但是 Meteor 在服务器上排队订阅和方法调用并按顺序处理它们,因此客户端上的方法回调将以相同的顺序调用,即使它们在技术上是异步代码。

标签: angularjs meteor


【解决方案1】:

你需要使用 this.unblock();在你的流星方法中here 是一个了解更多信息的页面。

【讨论】:

  • 谢谢@derrick,这很有帮助!
猜你喜欢
  • 2015-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-16
  • 1970-01-01
  • 2021-12-28
  • 1970-01-01
相关资源
最近更新 更多