Last active
April 20, 2020 23:23
-
-
Save PJZ9n/a1f3ed60a1d8a0a4de93eb1b3b841b9e to your computer and use it in GitHub Desktop.
コルーチンのやつ(動作未確認)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| function test(): \Generator | |
| { | |
| for ($i = 1; $i <= 5; $i++) { | |
| yield;//ここでGeneratorを返す(難しい) 位置が違った,修正済み | |
| echo "Number is" . $i . PHP_EOL; | |
| } | |
| } | |
| $this->getScheduler()->scheduleRepeatingTask(new class(test()) extends Task { | |
| /** @var \Generator */ | |
| private $generator; | |
| public function __construct(\Generator $generator) | |
| { | |
| $this->generator = $generator; | |
| } | |
| public function onRun(int $currentTick): void | |
| { | |
| if ($this->generator->valid()) {//yieldされていたら | |
| $this->generator->next();//進む | |
| echo "進みました" . PHP_EOL; | |
| } else {//yieldされなくなったら(処理が終わったら) | |
| $this->getHandler()->cancel();//タスクをキャンセル(終了)する | |
| echo "終了しました" . PHP_EOL; | |
| } | |
| } | |
| }, 20); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment