Ich versuche, Versprechen in SNS-Client (AWS SDK für PHP), aber es funktioniert nicht. Dieser Code (synchrone Art und Weise) arbeiten direkt mit der Funktion createTopic:Versprechen in AWS SDK für PHP funktioniert nicht und keine Fehlermeldung
require 'aws/aws-autoloader.php';
use GuzzleHttp\Promise;
use Aws\Sns\SnsClient;
$client = new SnsClient([
'version' => 'latest',
'region' => 'ap-northeast-1',
'credentials' => [
'key' => 'xxx',
'secret' => 'xxx',
],
]);
$result = $client->createTopic(['Name' => "test"]);
echo $result->get('TopicArn');
Aber wenn ich Versprechen (asynchron) unter Verwendung Funktion verwenden möchten createTopicAsync:
$result = $client->createTopicAsync(['Name' => "test"]);
$result->then(
function ($value) {
echo "The promise was fulfilled with {$value}";
},
function ($reason) {
echo "The promise was rejected with {$reason}";
}
);
es nicht funktionieren und nichts ist passiert, keine Fehlerrückkehr. Wer könnte wissen, was falsch ist?
Vielen Dank. Aber die wait() - Funktion wird verwendet, um synchron ein Versprechen zu vervollständigen. Das ist nicht das, was ich will. Hat jemand irgendwelche Ideen? – hiepns
Dann sollten Sie beschreiben, was genau Sie erreichen möchten. Wenn Sie mehrere asynchrone Aufrufe durchführen, müssen Sie für jede Operation eine separate Zusage erstellen und dann warten, bis die Reihe der Versprechen abgeschlossen ist. Sie müssen also wait() trotzdem anrufen. – xtx
Ein Beispiel für die Ausführung mehrerer asynchroner Operationen hinzugefügt. – xtx