正确使用冰柱协同程序

时间:2015-04-30 13:47:58

标签: php

我正在学习PHP Icicle Library

我想知道Coroutine的使用。我明白它是如何工作的。它基本上异步执行生成器函数.....当产生一个值时,它允许事件循环从异步队列执行另一个任务。

如果可能,请提供代码示例。感谢。

1 个答案:

答案 0 :(得分:1)

关于协同程序的Icicle文档中有几个示例:https://github.com/icicleio/Icicle/wiki/Coroutines

当一个协程产生一个promise时,协程的执行会被中断,直到promise被解决,允许运行其他任务。

下面是文档中的一个示例,显示了协程如何能够从解析器和连接器返回的promise中异步连接到服务器。

root@mongo-0:/data/mongodb/mongodb/data/journal# ls -lah
total 1.7G
drwxr-xr-x 2 mongodb mongodb 4.0K Jun  9 23:56 .
drwxrwx--- 3 mongodb mongodb 4.0K Jun 13 00:29 ..
-rw------- 1 mongodb mongodb 1.1G Jun  9 23:56 j._7
-rw------- 1 mongodb mongodb 695M Jun 13 00:22 j._8
-rw------- 1 mongodb mongodb   88 Jun 13 00:22 lsn

我鼓励您彻底阅读https://github.com/icicleio/Icicle/wiki处的所有文档,如果您在实施某些内容时遇到问题,请提出更具体的问题。