我有以下問題。我有一個我訂閱的觀察點,我需要滿足以下要求:處理不同的可觀察條件
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