服务器端:
Meteor.methods({
getFromInstagram: function(){
console.log("called!");
Future = Npm.require('fibers/future');
var myFuture = new Future();
var url = "https://api.instagram.com/v1/media/popular?access_token=[ACCESSTOKEN]";
Meteor.http.get(url, function(error, results){
if(error){
myFuture.throw(error);
} else {
myFuture.return(results);
}
});
console.log( myFuture.wait() );
return myFuture.wait();
}
});
客户方:
instagramContent = Meteor.call("getFromInstagram");
console.log(instagramContent);
服务器端控制台日志工作并返回一个对象。
Chrome控制台中的客户端控制台日志返回undefined。我在俯瞰什么?
答案 0 :(得分:1)
客户端始终是异步的。
尝试类似:
instagramContent = Meteor.call("getFromInstagram", function (error, result) {
console.log(result);
});
从文档(http://docs.meteor.com/#meteor_call):
在客户端上,如果你没有传递回调并且你不在存根中,则调用将返回undefined,并且你将无法获得该方法的返回值。这是因为客户端没有光纤,因此实际上没有任何方法可以阻止远程执行方法。