Meteor - 将异步函数返回到车把模板? [英] Meteor - return asynchronous function to handlebar template?

查看:16
本文介绍了Meteor - 将异步函数返回到车把模板?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试根据 Flickr API 调用生成 Flickr url,然后将该结果返回到 handlebars.js 模板.我正在努力寻找解决异步流程的方法.

我已经尝试创建一个回调函数,但我仍然不确定如何将定义的对象或变量放入 HTML 模板中.

这里是 Flickr API 函数的代码:

var FlickrRandomPhotoFromSet = function(setID,callback){Meteor.http.call("GET","http://api.flickr.com/services/rest/?method=flickr.photosets.getPhotos&api_key="+apiKey+"&photoset_id="+setID+"&格式=json&nojsoncallback=1",函数(错误,结果){if (result.statusCode === 200)var photoResult = JSON.parse(result.content);var photoCount = photoResult.photoset.total;var randomPhoto = Math.floor((Math.random()*photoCount)+1);var selectedPhoto = photoResult.photoset.photo[randomPhoto];var imageURL = "<img src=http://farm"+selectedPhoto.farm+".staticflickr.com/"+selectedPhoto.server+"/"+selectedPhoto.id+"_"+selectedPhoto.secret+"_b.jpg/>";FlickrObject.random = imageURL;}if (回调&& typeof(callback)==="函数") {打回来();}});};

我的模板代码是这样的:

Template.backgroundImage.background = function(){FlickrRandomPhotoFromSet(setID,function(){返回 FlickrObject;});};

但这仍然让我卡住了,无法将定义的对象放入我的 HTML 中,其编码如下: