我有一個Meteor方法包裹一個http.get。我試圖將該http.get的結果返回到方法的返回中,以便在調用方法時可以使用結果。
雖然我不能讓它工作。返回Meteor.http結果方法
這裏是我的代碼:
(在共享文件夾)
Meteor.methods({
getWeather: function(zip) {
console.log('getting weather');
var credentials = {
client_id: "string",
client_secret: "otherstring"
}
var zipcode = zip;
var weatherUrl = "http://api.aerisapi.com/places/postalcodes/" + zipcode + "?client_id=" + credentials.client_id + "&client_secret=" + credentials.client_secret;
weather = Meteor.http.get(weatherUrl, function (error, result) {
if(error) {
console.log('http get FAILED!');
}
else {
console.log('http get SUCCES');
if (result.statusCode === 200) {
console.log('Status code = 200!');
console.log(result.content);
return result.content;
}
}
});
return weather;
}
});
出於某種原因,儘管它們的存在和HTTP調用工作這並不返回結果:的console.log (result.content);的確記錄了結果。
(客戶端文件夾)
Meteor.call('getWeather', somezipcode, function(error, results) {
if (error)
return alert(error.reason);
Session.set('weatherResults', results);
});
當然在這裏,會話變量最終被空。
(請注意,這部分代碼似乎要被罰款,因爲它返回適當的,如果我硬編碼在該方法中一些虛擬字符串返回。)
幫助?
這是爲我做的,謝謝。 – oliv23 2014-09-29 16:04:26
這怎麼能在客戶端上實現? – janjackson 2018-02-15 03:36:23