RxGo で Observable の購読を途中でキャンセルする方法
Go
ReactiveX
how to
RxGo で Observable の購読を途中でキャンセルする方法
RxGo で Observable の購読をキャンセルするには context.Context を利用します。
parent := context.Background()
ctx, cancel := context.WithCancel(parent)
<-observable.ForEach(func(i interface{}) {
}, func(err error) {
}, func() {
}, rxgo.WithContext(ctx))
// cancel を実行することで購読をキャンセルすることができます
cancel()context.Context の準備
キャンセルすることのできる context.Context を生成しておきます。
parent := context.Background()
ctx, cancel := context.WithCancel(parent)ForEach にオプションとして context.Context を与える
Observable.ForEach は第 4 引数以降にオプションを与えることができます。rxgo.WithContext を利用すれば購読処理に context.Context を与えることができます。