В JS обещания имеют смысл, потому что приложение всегда находится в памяти, и вы хотите, чтобы все происходило без блокировки выполнения (по крайней мере, в случае запуска JS в браузере).
Но в PHP, когда ваш код запускается и завершает выход PHP. Так что в случае, когда вы используете обещания Guzzle, делает:
$fooPromise->wait()
вызов?нерешенный / не отвергнутый) ответный обратный вызов по-прежнему запускается после выхода из PHP (кажется маловероятным)?
Нет, это не так.
если поток выполнения достиг конца необещенного кода, ожидает ли он разрешения всех обещаний перед выходом, даже без вызова $ fooPromise-> wait ()?
Нет, он не ждет обещаний, если только ->wait()
явно называется.
Жадные обещания состоят в том, чтобы выполнять множество HTTP-запросов параллельно. Иногда вам нужно сделать это даже внутри одного запроса от пользователя (браузера).
Других решений пока нет …