【发布时间】:2021-04-15 17:02:10
【问题描述】:
我是 rxjs 的新手。我正在尝试了解 switchmap 功能。为了便于理解,我写了以下代码。
const fun1 = () => {
return new Promise((resolve, reject) => resolve("Fun1"));
};
const fun2 = () => {
return new Promise((resolve, reject) => resolve("Fun2"));
};
const fun3 = () => {
return new Promise((resolve, reject) => resolve("Fun3"));
};
const observer = from(fun()).pipe(
switchMap((result1) => {
return from(fun1());
}),
switchMap((result2) => {
return from(fun2())
}),
switchMap((result3) => {
return from(fun3());
})
);
observer.subscribe(
(val) => console.log("Val =", val),
(error) => console.log("Error = ", error),
() => console.log("Completed")
);
以上代码将 Fun3 返回给订阅者。
但我的期望是,如果 fun2() 返回带有“Fun2”字符串的承诺,那么代码不应使用 from(fun3()); 执行 switchmap;并且代码应该向订阅者返回“Fun2。我怎样才能在上面提到的代码中实现这个功能。
【问题讨论】:
标签: node.js reactjs angularjs react-native rxjs