|
|
1
1
如果你想保持你使用的原始模式(嵌套订阅),你应该把“getCommunityById”http调用移动到“dataService.getCode”回调中,它就会起作用。这里的关键是要理解“dataService.getCode”将返回一个可观测值(不存在的数据),而你的else分支使用已经存在的值(params.id)。 解决这个问题的正确方法是在管道()中使用concatMap()并链接这些操作。在concatMap()回调函数中,您将处理if-else分支逻辑,在那里您将返回this.daService.getCode或Observable.of(params.id),然后在下一个concatMap。 |
|
|
2
1
你可以考虑将你的
代码说明提取参数
我正在使用
下一步,我们定义一个属性
最后的步骤是
|
|
|
3
0
将代码更改为以下内容:-
Mergemap操作符将按顺序保存您的调用,我还修改了代码使其更短。 |
|
|
4
0
我想你可以用
将一个响应转换为您使用的连续请求所需的参数
操作员
这里有一个例子
|
|
|
5
0
尽管你可以使用rxjs来链接可观察对象。还有另一种简单的方法可以解决你的问题。如果你把任何东西放在可观察对象的订阅中,它就会被执行,所以你需要把它作为一个单独的函数移到外面。它应该能帮助你防止打电话给你的 dataService.getCommunityById 功能。
这是使用rxjs的另一种方法,这更容易理解。您还可以使用rxjs运算符,如 concatMap , 属于 正如所建议的 梅德哈特·马哈茂德 和 穆罕默德·坎·通布尔 . |
|
|
vatsal chauhan · 即使在字体预加载时,文本加载也很慢 1 年前 |
|
|
Loopy Momy · 当我尝试制作动画时,CSS可见性和块不起作用 1 年前 |
|
dds · Bootstrap下拉菜单导航栏 2 年前 |
|
|
IITU Yernur · Angular 18中不显示图像 2 年前 |
|
|
ahmed ahmedx · 如何正确居中放置卡片 2 年前 |