RxJs - 将 Flickr 请求转换为照片流
RxJs - Convert Flickr request to stream of photos
我是RXJS新手。试图找出为什么这段代码不起作用。
var $sources = $('#clickme');
var flickrApi = "https://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=af11a8fa73ca2894e2f7c46ecd7a5a87&text=puppies&per_page=5&format=json&nojsoncallback=1";
Rx.Observable.fromEvent($sources, 'click')
.flatMap(click => Rx.Observable.fromPromise($.getJSON(flickrApi)))
.flatMap(response => Rx.Observable.fromArray(response.photos))
.subscribe(photo => console.log("The photo Object", photo));
目标是运行这个flickr api,接收照片并创建单个照片事件流。出于某种原因,subscribe
不会发生。
现场(非工作)演示在这里:http://jsbin.com/pesiqo/2/edit
谢谢!
你的代码不是有效的JavaScript(JavaScript没有lambdas)。
还应向subscribe
调用提供错误处理程序,以捕获发生的任何运行时错误。 你应该检查Flickr的响应,看看请求是否成功。
只需将您的代码更改为有效的JavaScript,它就可以运行,尽管由于无效的flickr API密钥而失败。
var $sources = $('#clickme');
var flickrApi = "https://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=af11a8fa73ca2894e2f7c46ecd7a5a87&text=puppies&per_page=5&format=json&nojsoncallback=1";
Rx.Observable.fromEvent($sources, 'click')
.flatMap(function (click) {
return Rx.Observable.fromPromise($.getJSON(flickrApi));
})
.flatMap(function (response) {
if (response.stat === "fail") {
return Rx.Observable.throw(new Error(response.message));
}
return Rx.Observable.fromArray(response.photos);
})
.subscribe(function (photo) {
console.log("The photo Object", photo);
}, function (error) {
console.log("an error occurred", error, error.message, error.stack);
});
JSBIN: http://jsbin.com/tupowacila/3/edit
相关文章:
- 如何在JavaScript中将字符串转换为函数引用
- 如何在Javascript中将JSon对象转换为数组
- 使用JS将数组转换为json对象
- 漂亮照片图片库中的Facebook赞按钮
- 图片照片库
- 如何使用json将对象列表从java转换为javascript
- 偶尔结结巴巴地说“;堆叠的”;translate()上的转换(v4.0.0-alpha40)
- 为什么在单独的函数中应用时转换会闪烁/断断续续(D3)
- 在Javascript中转换对象数组
- 将数字转换为一定数量的硬币
- 将纯文本URL转换为可单击链接
- 当图像转换为本地存储的DataURL时,EXIF被删除
- 如何使用js将SNAPSHOT内部版本号转换为3位数的整数
- 如何将TypeScript对象转换为普通对象
- 检测个位数整数时正在转换毫秒
- 从javascript到jquery的转换
- DOM事件通过JSON转换为java
- 将圆柱体转换为弯管
- RxJs - 将 Flickr 请求转换为照片流
- 使用Facebook Graph API和JavaScript上传照片:将画布图像转换为多部分/表单数据作为POST正文