【问题标题】:How to send multiple responses to one request in Meteor如何在 Meteor 中对一个请求发送多个响应
【发布时间】:2016-01-04 05:59:19
【问题描述】:

我有一段代码,我使用 3rd 方 api 从 Facebook 获取数据,

我做以下查询

Meteor.call('getAwesomeUsers', function() { ... });

现在在服务器上这是我的

_.each(['zuck','shane', 'dustin'], function(key, value) {
            console.log(key, value)
            var data= HTTP.get( 'https://graph.facebook.com/' ).data; 
            console.log(data);
            return data;
        });

(请忽略代码,只是了解根据用户请求返回数据的想法,)

因此,正如代码所示,向服务器发出了三个请求,我可以看到使用我的 console.log() 正确抓取了数据,但数据没有返回给客户端。

我只想知道如何将这些数据分三次发送到客户端。

更新 我现在只是向服务器发出 3 个请求,只是为了让事情正常进行

【问题讨论】:

    标签: meteor websocket ddp


    【解决方案1】:

    你不能。这甚至不是流星或javascript的问题,而是编程范式的问题。一个函数只返回一次,而不是多次。

    所以你有两个选择:

    1. 将响应打包成一个
    2. 创建一个您可以使用的单独通信,应用您自己的逻辑来确定何时发送内容以及如何对另一端的接收数据做出反应。

    对于 1. 你可以简单地这样做:

    return _.map(['zuck','shane', 'dustin'], function(key, value) {
                console.log(key, value)
                var data= HTTP.get( 'https://graph.facebook.com/' ).data; 
                console.log(data);
                return data;
            });
    

    它只会给你一个包含三个“响应”的数组。

    【讨论】:

    • thanks@christian ,如果我遵循这个怎么样? meteorcapture.com/publishing-data-from-an-external-api我只是不希望客户端等到服务器上的所有三个请求都完成..我需要他们快速查看结果
    • 好的,这就是我所做的,现在我正在向服务器发出 3 个请求,因此服务器发送一个响应..
    • 是的,引用的解决方案绝对是一个不错的解决方案,因为它非常类似于流星式(使用出版物)。这只是多一点工作。
    猜你喜欢
    • 2020-02-04
    • 2022-06-16
    • 2022-08-22
    • 2017-10-12
    • 1970-01-01
    • 2020-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多