我知道我可以通过调用来获取当前正在执行的光纤的 ID
ZIO.descriptor.map(_.id)
但是,我想要的是一个不纯的函数,我可以从副作用代码中调用它,让我们像这样定义它
def getCurrentFiberId(): Option[FiberId]
以便
for {
fiberId <- ZIO.descriptor.map(_.id)
maybeId <- UIO(getCurrentFiberId())
} yield maybeId.contains(fiberId)
产生真实的。是否可以定义这样的函数,如果可以,如何定义?请注意,此问题与如何从 ZIO 中的副作用代码访问光纤本地数据密切相关。