几次调用后,流星应用程序中的循环HTTP调用将停止

时间:2015-06-18 18:10:28

标签: javascript node.js meteor

尝试自动将邮件发送到收集电子邮件中存储的电子邮件ID队列。我是第一次尝试流星所以请原谅我缺乏理解,如果我有的话。

我使用以下代码(在isServer上):

Meteor.methods({
    'sendEmails': function () {
        this.unblock();
        Emails.find({status: "no"}).forEach(function (obj) {
            var result = Meteor.http.call("GET", "http://someapidomain/email.php?email=" + obj.email);
            console.log(result.content);
        });
    }
});

此代码在Meteor.startup处调用。 当这个应用程序运行时,api被调用,我得到13封电子邮件的结果,有时5封电子邮件,有时2封电子邮件,然后没有任何反应。请帮忙。

如果需要更多详细信息,请与我们联系。

1 个答案:

答案 0 :(得分:0)

我建议做

Emails.find({status: "no"}).fetch().forEach(...)

请注意链中的fetch(),这可确保在执行HTTP调用之前已完成所有Mongo通信。 find()单独返回一个反应光标,这意味着你正在混合Mongo活动和HTTP活动,这可能不是很好 - 只是一个理论。

参考:http://docs.meteor.com/#/basic/Mongo-Collection-find