redux-observable
にRx.DOM.ajaxの代わりにisomporphic-fetchを使用できますか?redux-observableでajaxの代わりにfetchを使用
10
A
答えて
35
(注:RX.DOM.ajax
はRxJS V4からであり、RxJS v5を必要redux-observable
で動作しないV5で同等にRx.Observable.ajax
又はimport { ajax } from 'rxjs/observable/ajax';
である。)
任意ならびにfetch()
を使用することが実際に可能ですその他のAJAX APIいくつかは他よりも容易に適合しますが!
fetch()
APIはPromise
を返します。これはRxJS v5のにの組み込みサポートがあります。観測可能性を期待するほとんどの演算子は、そのままの約束を消費することができます(mergeMap
、switchMap
など)。しかし、しばしば、Rx演算子をPromiseの残りの部分に渡す前にPromiseに適用したいので、しばしばObservable内にPromiseをラップしたいと思うことがあります。
あなたがここにObservable.from(promise)
で観察への約束をラップすることができますが、私は、ユーザーのためにフェッチJSONレスポンスを要求する例を示します、その後、観測可能で約束をラップ:
const api = {
fetchUser: id => {
const request = fetch(`https://jsonplaceholder.typicode.com/users/${id}`)
.then(response => response.json());
return Observable.from(request);
}
};
あなたはあなたのエピックでそれを消費し、あなたが望む演算子を適用することができます:
const fetchUserEpic = action$ =>
action$.ofType(FETCH_USER)
.mergeMap(action =>
api.fetchUser(action.payload) // This returns our Observable wrapping the Promise
.map(payload => ({ type: FETCH_USER_FULFILLED, payload }))
);
この実施例でJSBin:https://jsbin.com/fuwaguk/edit?js,output
あなたはAPIコードを管理している場合は約束をキャンセルすることができないので、理想的にあなたがObservable.ajax
(またはその他の観察可能なベースのAJAXのutilsの)を使用します。 (この執筆時点)
関連する問題
- 1. JqGrid:editurlの代わりに$ .ajax()を使用
- 2. ajaxでのクエリ文字列の代わりにフォームデータを使用
- 3. AJAX:XMLHttpRequestの代わりにjQueryの.ajax()を使用する利点?
- 4. JavaScriptの代わりにAJAXを使用する
- 5. jquery ajaxコール - セッションを使用する代わりに?
- 6. Ajaxの代わりにJQueryのタブリンク
- 7. Fetch in Reactを使用したAjaxリクエスト
- 8. asp.net Ajax 4.0テンプレートの代わりに
- 9. 連続したAJAXコールの代わりに "async:false"の代わりに
- 10. サテライトアセンブリの代わりにリソースファイルを使用
- 11. ptの代わりにemを使用
- 12. Submitの代わりにButtonを使用
- 13. リストビューの代わりにaddViewを使用
- 14. expand.gridの代わりにouterを使用
- 15. VARCHAR2の代わりにCLOBを使用
- 16. クラスの代わりにコレクションを使用
- 17. 代わりにパーシャルビューコントローラを使用する
- 18. トーストを使用する代わりに
- 19. NotImplementedError:モジュールCrypto.Signature.pkcs1_15を代わりに使用
- 20. CDIで使用する代替Webフレームワーク(JSFの代わりに)
- 21. facebook api:curl -Fの代わりにajaxまたはjavascript POSTを使用する
- 22. Railsの代わりにsend_fileの代替ファイルを使用する
- 23. //使用する代わりに、プロトコル://
- 24. 代わりに使用するフォント
- 25. 使用アクションの代わりのFunc
- 26. pxにマイナスを使用する代わりに使用する
- 27. jqueryで$の代わりにキーワードを使用するには?
- 28. 使用Object.createの代わりsetPrototypeof
- 29. プロンプトを使用する代わりにフォームデータを使用する
- 30. LINQの代わりにナビゲーションプロパティを使用WebApiコントローラでの結合
ありがとう、ジェイ、説明のために! – zatziky