У меня есть обещание отправить электронное письмо, которое работает нормально.
$promise = $this->SesClient->sendEmailAsync($messages[0]);
$promise->then(
function ($value) {
echo "The promise was fulfilled with {$value}";
},
function ($reason) {
echo "The promise was rejected with {$reason}";
}
);
Однако я хочу иметь возможность объединить все свои электронные письма и отправлять их все параллельно, при этом сохраняя обратный вызов. В зависимости от того, было ли электронное письмо отправлено успешно или не удалось, я регистрирую его в своей базе данных.
У меня есть что-то вроде этого, которое отправляет все мои электронные письма нормально, но как мне использовать -> затем для каждого обещания затем выполнить действие для каждого из них после его завершения?
$promises = [];
foreach($messages as $message) {
$promises[] = $this->SesClient->sendEmailAsync($message['Email']);
}
$results = Promise\unwrap($promises);