首页 > 科技 >

表达过去、现在与将来:之将来(1)(5)

2018-10-23 07:28:35 网络整理 阅读:111 评论:0

表达过去、现在与将来:之将来(1)(5)

Coroutine object II

虽然我们添加了“step1“和”step2“这样的方法,但是并没有强制按照这样的顺序来调用。而且,如果我们要给”step1”定义两个选项怎么办?例如,既可能是“step1_add”也可能是“step1_sub”。让我们来把coroutine object升级为第2版。

lua version: https://tio.run/

表达过去、现在与将来:之将来(1)(5)

es2017 version: https://tio.run/

表达过去、现在与将来:之将来(1)(5)

我们可以看到coroutine和object是非常类似的,但是coroutine更加强大。但是没有直接的语法支持,给coroutine添加method很笨拙。

第1章就到这里了。我们使用了这些方式来实现一个极其简单的流程functionobject => state machinecoroutine => coroutine object

Function在真实世界的使用中是不足够的。所以我们要么选择object要么选择coroutine来完整表达”未来“会发生的事情。Object对于它的预期是显式定义的,但是对于它的状态是隐式的。Coroutine对于它的状态是显式定义的,但是对于它的预期却是隐式的。我们尝试把object和coroutine合并到一起,但是成果有限。

我们还学习了多种形式的continuationpartial functionobject instancecoroutine instance

Continuation给接下来几章的复杂调度打下了基础。

相关文章