Rx(Reactive Extensions)とは
ReactiveExtensionsはC#から出てきたもので
購読と通知という概念があります。
詳しくはこちらがわかりやすくまとめられていると思います。
https://qiita.com/nomok_/items/39b5d7c61810f274768d
なんのために?
ネイティブ開発のように複数の画面がありつつ、
複数のお互いの画面が生きているのか分からず、
それぞれの画面ライフサイクルを考慮しつつ
双方向に、非同期に通知を行う際にとても便利です。
NimでRx
https://github.com/nortero-code/rx-nim
こんなライブラリがあったので紐解きつつ使えそうかみていきます。
import nimrx
import sugar # =>をつかうため
let subj = behaviorSubject(123)
var test = 0
discard subj.subscribe((val: int) => (test = val))
echo test
subj.next(321)
echo test
#discard subj.subscribe((val: int) => (test = 555))