Angular 将承诺转化为ngrx效应中的可观察承诺
我使用的是第三方库,它给出了承诺,但我需要将其包装成ngrx效果中可以观察到的。 其思想是在应用程序成功初始化时发送新操作。 但我需要在承诺解决后发送数据Angular 将承诺转化为ngrx效应中的可观察承诺,angular,redux,promise,ngrx,Angular,Redux,Promise,Ngrx,我使用的是第三方库,它给出了承诺,但我需要将其包装成ngrx效果中可以观察到的。 其思想是在应用程序成功初始化时发送新操作。 但我需要在承诺解决后发送数据 classOne.promise().then(result => nested.OnemorePromise(result).then(result2 => //(result2) dispatch new action here (result2) ) ); 我创造了这样的东西: @Effect() ini
classOne.promise().then(result =>
nested.OnemorePromise(result).then(result2 =>
//(result2) dispatch new action here (result2)
)
);
我创造了这样的东西:
@Effect()
initializeValue$:Observable=此.actions$.pipe(
ofAction(应用初始化操作),
映射(操作=>{
classOne.promise().then(结果=>
nested.OnemorePromise(result).then(result2=>
this.store.dispatch(新操作(result2))
//理想情况下,仅返回新操作(结果2)
)
);
})
这里的问题是,您没有返回操作
,而是手动调用store.dispatch
(就像您的评论所说的那样)
要解决此问题,请使用(promise)中的而不是.promise()。然后(…)
还要确保map
函数返回某些内容,但现在不是这样。您可以在Rxjs>=6中使用from
:
import { from } from 'rxjs';
map(action => {
from(classOne.promise()).map(result ...
import { fromPromise } from 'rxjs/observable/fromPromise';
map(action => {
fromPromise(classOne.promise()).map(result ...
fromPromise
在Rxjs中,我尝试返回。结果相同。好的,谢谢。如果您使用Rxjs 6,运算符是可出租的,这意味着您应该从(classOne.promise()).pipe(结果