关于反应式编程第5周的Coursera课程有建立网络爬虫的例子
“runNext”和“enqueueJob”直接调用“running”函数,而“running”通过行为改变(conext.become)调用“runnext”和“enqueueJob”。
直接调用函数或通过context.become直接调用函数之间有什么区别,将它放在hotswap堆栈的顶部,就像context.become一样?
谢谢, 阿伦
答案 0 :(得分:0)
首先,Receive
是PartialFunction[Any, Unit]
的类型别名。
在该示例中runNext
和enqueueJob
不调用running
或waiting
,它们是返回部分函数的函数,具体取决于输入。我知道这有点令人困惑,因为所有四个函数都有类似的签名。但是,running
和waiting
这四个实际上只是实现了PartialFunction[Any, Unit]
(由case
语句识别)。