我有一个副作用 Observable 需要在主 Observable 完成之前解决。如果是同步操作,我可以使用tap()运算符。异步操作有明确的等价物吗?
在以下示例中,我必须将内部值映射回我实际想要通过管道传递的外部值。我将如何避免这种映射?
const user = requestUser().pipe(
switchMap(user => {
return requestAndAssignToken(user)
.pipe(
map(token => user)
);
})
);
Run Code Online (Sandbox Code Playgroud)
ggr*_*nig 16
如果我理解正确,你想忽略内部 Observable 的结果,只让外部 Observable 在继续之前等待它发出。
在这种情况下,我建议delayWhen运营商。它被传递一个delayDurationSelector返回一个 Observable (the duration Observable)。然后它的行为就像文档中所述:
仅当持续时间 Observable 发出值或完成时,才会在输出 Observable 上发出源值
对于您的示例,它看起来像这样:
const user = requestUser().pipe(
delayWhen(user => requestAndAssignToken(user))
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4605 次 |
| 最近记录: |