首页 > 科技 >

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

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

然而,使用对象并没有严格表达这个流程。因为step1和step2是对等的。没有地方定义了step1必须在step2之前执行。更精确的表达方式是state machine:

lua version: https://tio.run/

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

es2017 version: https://tio.run/

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

其中的”next_step“是一个游标,它跟踪了执行的位置。在x86-64 CPU中,也有一个instruction pointer register名叫”RIP“,干的活和”next_step“是类似的。 Coroutine

Coroutine运作机制类似于state machine,但是写起来和function类似。表达同样的概念用的代码要精简许多。有两种风格的coroutine,一种是用”yield“(也被称为generator),一种是用”async/await“。我们先来看看”yield“如何工作的。

lua version: https://tio.run/

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

es2017 version: https://tio.run/

相关文章