Avatar
利用側はこんな感じね Task { [weak self] in guard let observeFoo = self?.observe(keyPath: \.foo) else { return } for await foo in observeFoo { guard let self = self else { return } self.printFoo(foo) } }
2:54 PM
でこれは流石にウッて感じなのはその通りなので
2:54 PM
まあやっぱりselfの何某かを購読するってのは無理があるらしい
2:55 PM
子のメンバを親が購読して子に通達する、というユースケースならはまりそうだけどね
2:56 PM
Task { [child, weak self] in for await foo in child.observe(keyPath: \.foo) { if self == nil { return } child.printFoo(foo) } } うーーん。。。 (edited)
2:57 PM
やっぱりなんか終端記号の付与の仕方がもうちょっとなんとかなってほしいな
2:58 PM
AsyncSequenceのオペレーターにそういうのが追加されるかも (edited)