Справочник функцийdelay()

delay ​

(PHP 8.6+, True Async 1.0)

delay() — Приостанавливает выполнение текущей корутины на указанное количество миллисекунд.

Описание ​

php
delay(int $ms): void

Приостанавливает корутину, передавая управление планировщику. Через $ms миллисекунд корутина будет возобновлена. Другие корутины продолжают выполняться во время ожидания.

Параметры ​

ms Время ожидания в миллисекундах. Если 0 — корутина просто уступает управление планировщику (аналог suspend(), но с постановкой в очередь).

Возвращаемое значение ​

Нет возвращаемого значения.

Примеры ​

Пример #1 Базовое использование ​

php
<?php
use function Async\spawn;
use function Async\delay;

spawn(function() {
    echo "Начало\n";
    delay(1000); // Ждём 1 секунду
    echo "Прошла 1 секунда\n";
});
?>

Пример #2 Периодическое выполнение ​

php
<?php
use function Async\spawn;
use function Async\delay;

spawn(function() {
    while (true) {
        echo "Проверка состояния...\n";
        delay(5000); // Каждые 5 секунд
    }
});
?>

Примечания ​

Примечание: delay() не блокирует весь PHP-процесс — блокируется только текущая корутина.

Примечание: delay() автоматически запускает планировщик, если он ещё не запущен.

См. также ​

  • suspend() — уступить управление без задержки
  • timeout() — создание таймаута для ограничения ожидания