私はリアクティブプログラミングには新しく、AJAXナビゲーションサイドナビゲーションの作成に問題があります。rxjsの新しいemmisionに関するAjaxリクエストをキャンセルする
<ul>
<li>change_password</li>
<li>update_profile</li>
</ul>
<h3> The result </h3>
<div id="theContent"></div>
<script type="text/javascript">
var listClick$ = Rx.Observable.create(function(observer){
$('li').click(function(){
let pageName = $(this).html();
observer.next(pageName);
});
}).startWith('change_password').flatMap(function(pageName){
return Rx.Observable.fromPromise($.getJSON('http://localhost:3000/settings/'+pageName));
});
listClick$.subscribe(function(gottenJson){
$('#theContent').html(gottenJson.page);
});
</script>
CHANGE_PASSWORDまたはupdate_profile i上をクリックすると、AJAX要求が行われたが、CHANGE_PASSWORDのものが遅れている、それがクリックされた後、update_profileがクリックされたときに、update_profileフォームが表示されているが、その後ときCHANGE_PASSWORD形に置き換えられますそれは完了です。
別のリストアイテムをクリックしたときに、最初のAJAXリクエストをキャンセルするにはどうすればよいですか?
私は以前の排出が 'flatMap'を' flatMapLatest'に変更することによって最新のものを置き換えるのを防ぐことができました。 AJAXリクエストは引き続き行われます。 – nonybrighto
'Rx.Observable.fromEvent'コンストラクタを参照してコードを簡素化することをお勧めします –
うん。' create'を 'fromEvent'で置き換えます。 – nonybrighto