在乐观的工作流程中,我想在后端获取数据之前触发成功操作:
类似这样的事情
@Effect()
save$ = this.actions$
.ofType(myActions.SAVE)
.map((action: myActions.SaveAction) => action.payload)
.// dispatch success here ?
.switchMap((foo) => {
return this.myService
.updateFoo(foo)
.catch(error => Observable.of(new myActions.SaveFailAction(error)));
});
答案 0 :(得分:0)
do
或者,如果您将使用可管理的运算符(使用rxjs 5.5+),则tap
将重命名为myActions.SaveActionWithEarlySuccessAction
。
而不是激发额外的动作,你不会更好地拥有var Array = [['a', 'b', 'c'], ['b', 'c', 'd'], ['a', 'd', 'b']];
var TempArray = [];
var EndArray = [];
Array.forEach(function(a) {
a.sort();
a.forEach(function(b) {
if (!TempArray.includes(b)) {
TempArray.push(b);
}
});
});
TempArray.sort();
Array.forEach(function(a) {
a.sort();
var Member = [];
TempArray.forEach(function(b) {
Member.push((a.includes(b)) ? b : null);
});
EndArray.push(Member);
});
console.log(EndArray);
(而不是myAction.SaveAction),然后这个效果和其他任何反应对那个特定的一个?
答案 1 :(得分:0)
由于SAVE
已经同步,因此您无需执行SaveSuccess
操作。您可以为SaveSuccess
执行Save
的任何操作,而不是保留您拥有的内容。
switchMap(foo => this.myService.updateFoo(foo).pipe(
map(() => new MyActions.NullAction()),
catchError(error => of(new MyActions.SaveFailAction(error)),
));
你仍然需要返回成功的动作以防止无限循环,但它不需要做任何事情。