我有以下代码,无论有没有Future,都无法正常工作。我是否以正确的方式实施了未来?
getGiphy: function(key) {
var future = new Future();
var url = "http://api.giphy.com/v1/gifs/translate?s=cat+"+key+"&api_key=849238";
//synchronous GET
var result = Meteor.http.get(url, {timeout:30000});
if(result.statusCode==200) {
var respJson = JSON.parse(result.content);
console.log("response received.");
future["return"](respJson);
} else {
console.log("Response issue: ", result.statusCode);
var errorJson = JSON.parse(result.content);
throw new Meteor.Error(result.statusCode, errorJson.error);
}
return future.wait();
}
我得到了这个: '提供调用结果的例外' getGiphy''
答案 0 :(得分:0)
不,你必须以这种方式实现未来:
var future = new Future();
....
future.return(respJson);
....
future.throw(result.statusCode, errorJson.error);
....
return future.wait();
希望这会有所帮助。
编辑:
您可以通过以下方式进行Meteor.http调用:
try {
return Meteor.http.call("GET", "http://api.giphy.com/v1/gifs/translate?s=cat+"+key+"&api_key=849238", {
headers: {
"Accept": "application/json"
}
});
} catch (err) {
console.log(err);
}