mcbeany/libasync

使用 await-generator 的愚蠢异步实现

0.0.1 2022-06-25 14:02 UTC

This package is auto-updated.

Last update: 2024-09-26 12:23:40 UTC


README

使用 await-generator 的愚蠢异步实现

使用方法

libAsync::doAsync(Closure $executor); // <-- Returns a promise

示例

  • 从互联网获取数据
use SOFe/AwaitGenerator/Await;
use Mcbeany/libAsync/libAsync;
use pocketmine/utils/Internet;

Await::f2c(function(){
    $response = yield from libAsync::doAsync(fn() => Internet::getUrl("example.com"));
    var_dump($response);
});
  • 异步保存文件
Await::g2c(
    libAsync::doAsync(fn() => file_put_contents('file.txt', 'Hello World!')),
    fn() => $this->getLogger()->info("Saved file successfully!")
);

注意

不要向 AsyncTask 传递任何无法序列化的变量