我有一个检索数据的可观察对象,这些值是来自 Promise 的参数。加入这些值以使 Promises 期望来自 observable 的值并且不会导致错误的更好方法是什么?
let user, id, settings;
this.UserService.getUserData().subscribe(user => {
user = user.name;
id = user.id;
});
this.UserConfiguration.getSettings(user, id)
.then(res => {
settings = res.settings;
debugger
});
另一种方法是在可观察对象中调用 promise ,但我不确定将参数传递给可观察对象的最佳方法是什么。
this.UserService.getUserData().subscribe(user => {
this.UserConfiguration.getSettings(user.name, user.id)
.then(res => {
settings = res.settings;
debugger
});
});
最佳答案
this.UserService.getUserData().switchMap((data) =>
Observable.fromPromise(this.UserConfiguration.getSettings(data.user, data.id))
.subscribe((result) => this.settings = result.settings));
编辑:我正在简化答案以仅包含不可出租的版本。如果您需要可出租的运算符,只需 pipe(switchMap).subscribe()
即可。
关于javascript - 如何链接一个期望来自 Observable 的参数值的 Promise?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49502448/