我有以下问题。我有一个我订阅的观察点,我需要满足以下要求:处理不同的可观察条件
1 - registerUser必须在处理回调数据后执行。
2 - 如果registerTask返回数据,然后我得到的ID和要调用registerUser这也是可观察到的
3 - 如果registerTask返回错误,那么我必须调用searchTaskByID获取ID,然后registerUser
问题是我不想写数据和错误括号中的函数registerUser,我不知道如何独立于上述条件执行它。有没有简单的方法来做到这一点?
在这里,代码我到目前为止,不按预期运行:
角2成分:
taskID:String
constructor(
private myService:MyService,
private router:Router
) { }
onClick() {
const task= {
name: this.taskID,
}
const user= {
name: "test",
}
return this.myService.registerTask(task).subscribe(
(data) => {console.log(data)
var taskId = data.taskId},
(error) => {console.log(error)
this.myService.searchTaskByName(task).subscribe(
(data) => {console.log(data)
var taskId = data.id},
(error) => {console.log(error)},
()=>{}
);
},
() => this.myService.registerUser(user).subscribe(
(data) => {console.log(data)
var userId = data.id},
(error) => {console.log(error)}
)
)
}
上面的代码是如何按预期工作的? –
例如:如果registerTask返回错误,则假定searchTaskByName成功执行。但在此之后,registerUser将不会被执行。之后我需要registerUser来执行。 – Battalgazi