Future::getCompletedFileAndLine

(PHP 8.6+, True Async 1.0)

public function getCompletedFileAndLine(): array

Повертає інформацію про місце завершення Future (де було викликано complete() або fail() на пов’язаному FutureState). Містить ім’я файлу та номер рядка. Корисний для налагодження та відстеження асинхронних ланцюжків.

Значення, що повертається

array — масив з ключами file (рядок, шлях до файлу) та line (ціле число, номер рядка). Якщо Future ще не завершено, повертає порожній масив.

Приклади

Приклад #1 Отримання місця завершення

<?php

use Async\Future;
use Async\FutureState;

$state = new FutureState();
$future = new Future($state);

$state->complete(42); // line 8

$location = $future->getCompletedFileAndLine();
echo "File: " . $location['file'] . "\n";
echo "Line: " . $location['line'] . "\n";
// File: /app/script.php
// Line: 8

Приклад #2 Порівняння місць створення та завершення

<?php

use Async\Future;
use Async\FutureState;

$state = new FutureState();
$future = new Future($state);

\Async\async(function() use ($state) {
    \Async\delay(100);
    $state->complete("result");
});

$future->await();

echo "Created at: " . $future->getCreatedLocation() . "\n";
$completed = $future->getCompletedFileAndLine();
echo "Completed at: " . $completed['file'] . ":" . $completed['line'] . "\n";

Дивіться також