我真的找不到合适的词来形容我想做的事情。所以我只是展示我的尝试..这就是我尝试过的:
register(): Observable<boolean> {
return this.registerNew().pipe(
map(userData => {
return this.updateProfile().pipe( (*1)
map(profileData => {
return profileData ? true : false;
}))
}))
}
Run Code Online (Sandbox Code Playgroud)
但当然我收到以下错误消息:
Type 'Observable<false | Observable<boolean>>' is not assignable to type 'Observable<boolean>'.
我也在考虑在我用 (*1) 标记的行中使用 await 而不是 return。
但我仍然无法让它以一种很好的方式工作。
如果你想从一个 observable 切换到另一个并使用前一个的值,有一个switchMap可以像这样使用的运算符
register(): Observable<boolean> {
return this.registerNew().pipe(
switchMap(userData => {
return this.updateProfile().pipe( (*1)
map(profileData => {
return profileData ? true : false;
}))
}))
}
Run Code Online (Sandbox Code Playgroud)
是什么导致发生registerNew,然后它将结果值传递给switchMap返回的 observable(switchMap 必须返回一个 observable 才能工作),然后内部 observable ( updateProfile)的结果到达订阅者。
| 归档时间: |
|
| 查看次数: |
4181 次 |
| 最近记录: |