Я работаю над асинхронным процессом над проектом PHP. Я использую библиотеку с именем "spatie"
. Фрагмент кода, как показано ниже:
foreach (range(1, 2) as $i) {
$pool->add(function () use ($i) {
// Do a thing
try {
$result = $i / 0; // This will cause an error
return "Works";
} catch (\Exception $e) {
return -1;
}
})->then(function ($output) {
// Handle success
echo (output . "\n");
})->catch(function ($exception) {
// When an exception is thrown, it's caught and passed here.
echo "Sounds good, but don't work\n";
})
}
$pool->wait();
Все, что я хочу, - это когда $result
получил ошибку, он войдет во внутренний catch
, но вместо этого он опустится до нижнего улова, что приведет к отличному результату от того, что я хочу.
Результат, который я хочу получить:
-1
-1
Но вместо этого результат:
Звучит хорошо, но не работает
Звучит хорошо, но не работает
Может кто-нибудь помочь мне добиться результата так, как я хочу?