wyrihaximus / react-awaitable-observable
🛠️ 使用 async & await 使可观察对象可迭代
1.1.0
2023-11-30 22:01 UTC
Requires
- php: ^8.2
- react/async: ^4
- react/promise: ^2.10 || ^3
- reactivex/rxphp: ^2.0.12
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-08 16:20:26 UTC
README
安装
要使用Composer安装,请使用以下命令,它将自动检测最新版本并将其绑定到^
。
composer require wyrihaximus/react-awaitable-observable
使用方法
awaitObservable
函数将接受任何可观察对象并将其转换为迭代器,因此可以在foreach
内的async
中使用。
use Rx\Observable; use Rx\Scheduler\ImmediateScheduler; use function React\Async\async; use function WyriHaximus\React\awaitObservable; async(function () { $observable = Observable::fromArray(range(0, 1337), new ImmediateScheduler()); foreach (awaitObservable($observable) as $integer) { echo $integer; // outputs 01234....13361337 } });
中断迭代器
上面的示例假设您不会中断迭代器。然而,在某些情况下,您可能希望短路迭代器,为此提供了break
方法。
use Rx\Observable; use Rx\Scheduler\ImmediateScheduler; use function React\Async\async; use function WyriHaximus\React\awaitObservable; async(function () { $observable = Observable::fromArray(range(0, 1337), new ImmediateScheduler()); $iterator = awaitObservable($observable); foreach ($iterator as $integer) { echo $integer; // outputs 01234 if ($integer >= 4) { $iterator->break(); } } });
贡献
有关详细信息,请参阅CONTRIBUTING。
许可协议
版权所有 2022 Cees-Jan Kiewiet
在此特此授予任何获得本软件及其相关文档副本(以下简称“软件”)的人免费使用软件的权利,不受任何限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许向提供软件的人提供本软件以执行上述操作,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“现状”提供,不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论该责任基于合同、侵权或其他原因,是否因软件或其使用或其他方式而产生。