预期行为:
1) 获取所有任务taskService.getAllTasks()
;
2)将结果任务传递给filterService.addFilterableTasks()
;
3) 获取任务filterService.getFilteredTasks()
;
4)将结果任务传递给searchService.addTasks()
;
5) 获取任务searchService.getBoardFilteredTasks()
。
this.taskService.getAllTasks().pipe(
tap((allTasks: Task[]) => {
this.filterService.addFilterableTasks(allTasks);
console.log(allTasks) // (1)
}),
switchMapTo(this.filterService.getFilteredTasks()),
tap((tasks: Task[]) => {
this.searchService.addTasks(tasks);
console.log(`passed ${tasks.length} tasks`) // (2)
}),
switchMapTo(this.searchService.getBoardFilteredTasks()) // (3)
).subscribe((tasks: Task[]) => {
/* get the result tasks and show them on a board */
})
当前行为:
没有第 (3) 行:
第 1 行 => 控制台中的预期数组
第 2 行 => 正确的已通过任务数
使用第 (3) 行:
第 1 行和其他所有内容都不会被触发。一个错误说没有任务searchService.getBoardFilteredTasks
问题:
是否允许一个switchMapTo()
接一个地使用?
还是有另一种实现方式?