流星HTTP.在客户端调用未定义,在服务器端工作



我目前正在学习如何在流星做HTTP请求。当我运行代码时,我可以正确地看到控制台中的数据。然而,在客户端,我得到的都是"未定义"。我想我正在运行HTTP。同步获取方法

. js文件

if (Meteor.isClient) {
    Template.test.helpers({
        testGET: function(){
            var origin = Meteor.call('fetchFromService');
            console.log(origin);  //-- Displays 'Undefined'
        }
    });
}
if (Meteor.isServer) {
    Meteor.methods({
        fetchFromService: function() {
            this.unblock();
            var url = "https://httpbin.org/get";
            var result;
            try{
                result = HTTP.get( url );
            } catch(e) {
                result = "false";
            }
            console.log(result.data.origin); //-- Displays the data properly
            return result.data.origin;
        }
    });
}

这是异步的,你必须传递一个回调到call函数:

var origin = Meteor.call('fetchFromService', function(err, data) {
    console.log(data);
});

如果不通过回调,则origin将变为undefined,直到请求完成。

最新更新