Javascript RxJS flatMapLatest不是一个函数
使用Javascript RxJS flatMapLatest不是一个函数,javascript,rxjs,Javascript,Rxjs,使用RxJs我试图复制一个演示。但我没有得到任何结果。相反,将错误获取为:distinct.flatMapLatest不是函数 我在这里怎么了?我是否需要在此处添加任何库 这是我的尝试:但看看演示,了解真正的问题是什么 $(document).ready(function(){ var $input = $('#input'), $results = $('#results'); var keyups = Rx.Observable.fromEvent($input, 'keyup'
RxJs
我试图复制一个演示。但我没有得到任何结果。相反,将错误获取为:distinct.flatMapLatest不是函数
我在这里怎么了?我是否需要在此处添加任何库
这是我的尝试:但看看演示,了解真正的问题是什么
$(document).ready(function(){
var $input = $('#input'),
$results = $('#results');
var keyups = Rx.Observable.fromEvent($input, 'keyup')
.map(e => e.target.value)
.filter(text => text.length > 2);
var throttled = keyups.throttle(500);
var distinct = throttled.distinctUntilChanged();
function searchWikipedia (term) {
return $.ajax({
url: 'http://en.wikipedia.org/w/api.php',
dataType: 'jsonp',
data: {
action: 'opensearch',
format: 'json',
search: term
}
}).promise();
}
var suggestions = distinct.flatMapLatest(searchWikipedia);
suggestions.subscribe(data => {
var res = data[1];
/* Do something with the data like binding */
$results.empty();
$.each(res, (_, value) => $('<li>' + value + '</li>').appendTo($results));
}, error => {
/* handle any errors */
$results.empty();
$('<li>Error: ' + error + '</li>').appendTo($results);
});
})
$(文档).ready(函数(){
变量$input=$(“#input”),
$results=$(“#results”);
var keyups=Rx.Observable.fromEvent($input,'keyup'))
.map(e=>e.target.value)
.filter(text=>text.length>2);
var节流=键控。节流(500);
var distinct=throttled.distinctUntilChanged();
功能搜索维基百科(术语){
返回$.ajax({
网址:'http://en.wikipedia.org/w/api.php',
数据类型:“jsonp”,
数据:{
操作:“opensearch”,
格式:“json”,
搜索:术语
}
}).promise();
}
var建议=distinct.flatMapLatest(searchWikipedia);
建议。订阅(数据=>{
var res=数据[1];
/*对数据执行绑定之类的操作*/
$results.empty();
$。每一个(res,(_,value)=>$(''+value+' ')。附加到($results));
},错误=>{
/*处理任何错误*/
$results.empty();
$('错误:'+Error+' )。附录($results);
});
})
在RxJS 5中,flatMapLatest
已重命名为switchMap
var suggestions = distinct.switchMap(searchWikipedia);
谢谢如果您不介意,如果您知道一个实用的教程示例,可以使用rxjs
处理多个ajax
调用?(回电并承诺)@user2024080我不知道你的意思。最好提出一个新问题并提供大量细节。顺便说一下,我建议现在使用rx4。rx5可能有问题。