在redux-observable
是否有可能使用isomporphic取的,而不是Rx.DOM.ajax?
(注意:RX.DOM.ajax
来自RxJS v4 ,并且不能与redux-observable
需要RxJS
v5的版本
一起使用。v5中的等效项是Rx.Observable.ajax
或import { ajax } from 'rxjs/observable/ajax';
)
确实可以使用fetch()
以及其他任何AJAX API。虽然有些适应比其他容易!
该fetch()
API返回a Promise
,RxJS v5对此具有 内置支持
。该预期可观察到的最能消耗运营商承诺按原样(如mergeMap
,switchMap
等)。但是通常您需要在将Rx运算符传递到Epic的其余部分之前将Rx运算符应用于Promise,因此,您通常需要将Promise包装在Observable中。
您可以使用以下方法将Promise封装为ObservableObservable.from(promise)
这是一个示例,其中我为用户获取,请求JSON响应,然后将诺言包装在可观察的内容中:
const api = {
fetchUser: id => {
const request = fetch(`https://jsonplaceholder.typicode.com/users/${id}`)
.then(response => response.json());
return Observable.from(request);
}
};
然后,您可以在Epic中使用它,并应用所需的任何运算符:
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
(或任何其他基于Observable的AJAX
实用程序),因为无法取消Promises。(截至撰写本文时)
我想我根本不理解角2的rxjs可观测物的概念。 我创建了一个可观察属性,其他人可以订阅该属性并获取http调用结果的数据。 如果我想发出另一个http请求,可能需要修改一些参数以提取一些新数据,该怎么办?我是否要用这个新的可观察物替换可观察物?这是否破坏了我的订阅组件与前一个可观察组件的订阅?
Observable.of(1, 2, 3).subscribe( doSomething, reject, resolve); }); The forEach pattern is useful for a sequence of events you only expect to happen once. export class MyApp { private d
基于 RxJS 5 的 Redux 中间件,通过组合和取消异步动作去创建副作用。
但是,我们将经常从回调,promise,事件,集合或使用API上可用的许多运算符创建Observable。 这个基本示例概述了Http库常见例程如get,post,put和delete所有返回Observables,允许我们异步处理任何结果数据。 Observable Form Events import {FormControl, FormGroup, FormBuilder} from '@a
问题内容: 我知道的指示: JPA持久性机制读取“ persistence.xml”文件,查找名为“ persistence-unit- name”的持久性单元,并基于该持久性单元构造EntityManagerFactory。 我的问题是,如何强制JPA 使用不同于“ persistence.xml”的文件 ?例如“ persistence-test.xml”。 问题答案: 尽管单个JPA提供程序
问题内容: 现在,我有一个PHP文件,该文件执行MYSQL查询,然后计算像这样的行: 这可以正常工作,但是我试图将所有PHP文件更改为使用PDO。那么如何用PDO做到这一点呢? 问题答案: 要么 您也可以使用它来询问数据是否存在或被选择: 或使用您的变量: