私は以下の問題があります。私は購読しているオブザーバブルを持っており、次の条件を満たす必要があります。観察可能な状態で異なる条件を処理する
1 - registerUserは、コールバックデータの処理後に実行する必要があります。
2 - registerTaskがデータを返す場合、私はIDを取得し、またあるのregisterUserを呼び出す必要があり、観察
3 - registerTaskがエラーを返す場合、私はその後、IDとのregisterUserを取得するためにsearchTaskByIDを呼び出す必要があります
問題は、データとエラー括弧の両方にregisterUser関数を書きたくないということです。上の条件とは独立して実行するにはどうすればよいかわかりません。これを行う簡単な方法はありますか?
ここで私はこれまでのところ、意図したとおりに機能していないコード:
角度2の成分:catchは、エラー処理に使用することができます
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