答案 0 :(得分:1)
据我所知,只是回调的正常含义 - 为响应事件而调用的函数。因此,例如在React Component中,有许多函数,如componentDidMount
,在组件生命周期的不同阶段调用。在scalajs-react中,这些实现为返回CallbackTo[Unit]
的函数,由于类型别名,它也可以写为Callback
。例如,在向componentDidMount
添加ReactComponentB
回调时,我们会使用def componentDidMount(f: DuringCallbackM[P, S, B, N] => Callback): ReactComponentB[P, S, B, N]
。
在javascript中,组件应该在componentDidMount
函数(或其他回调)中立即运行事件的任何副作用。在scalajs-react中,组件将这些效果包装在Callback
中,并返回该效果。这允许scalajs-react系统延迟Callback
中代码的实际执行 - 稍后通过调用runNow()
来完成。这也意味着Callbacks
使用map
,flatMap
,>>
等进行组合。除非runNow()
最终被调用,否则它们不会运行,所以如果你不是将Callback
返回到其他代码以便稍后执行,只是创建它将无效。