

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Pemrograman asinkron menggunakan Versi 3 AWS SDK untuk PHP
<a name="asynchronous-requests"></a>

Anda dapat mengirim perintah secara bersamaan menggunakan fitur asinkron SDK. Anda dapat mengirim permintaan secara asinkron dengan akhiran nama operasi dengan. `Async` Ini memulai permintaan dan mengembalikan janji. 

Janji dipenuhi dengan objek hasil pada keberhasilan atau ditolak dengan pengecualian pada kegagalan. Ini memungkinkan Anda untuk membuat beberapa janji dan meminta mereka mengirim permintaan HTTP secara bersamaan ketika penangan HTTP yang mendasari mentransfer permintaan.

 **Impor** 

```
require 'vendor/autoload.php';
use Aws\S3\S3Client;
use Aws\Exception\AwsException;
```

 **Kode Sampel** 

```
// Create an SDK class used to share configuration across clients.
$sdk = new Aws\Sdk([
    'region'   => 'us-west-2'
]);
// Use an Aws\Sdk class to create the S3Client object.
$s3Client = $sdk->createS3();
//Listing all S3 Bucket
$CompleteSynchronously = $s3Client->listBucketsAsync();
// Block until the result is ready.
$CompleteSynchronously = $CompleteSynchronously->wait();
```

Anda dapat memaksakan janji untuk menyelesaikan secara serempak dengan menggunakan `wait` metode janji. Memaksa janji untuk menyelesaikan juga “membuka” status janji secara default, yang berarti itu akan mengembalikan hasil janji atau membuang pengecualian yang ditemui. Saat memanggil `wait()` janji, proses memblokir sampai permintaan HTTP selesai dan hasilnya diisi atau pengecualian dilemparkan.

Saat menggunakan SDK dengan pustaka loop peristiwa, jangan blokir hasil. Sebagai gantinya, gunakan `then()` metode hasil untuk mengakses janji yang diselesaikan atau ditolak saat operasi selesai.

 **Impor** 

```
require 'vendor/autoload.php';
use Aws\S3\S3Client;
use Aws\Exception\AwsException;
```

 **Kode Sampel** 

```
// Create an SDK class used to share configuration across clients.
$sdk = new Aws\Sdk([
    'region'   => 'us-west-2'
]);
// Use an Aws\Sdk class to create the S3Client object.
$s3Client = $sdk->createS3();
```

```
$promise = $s3Client->listBucketsAsync();
$promise
    ->then(function ($result) {
        echo 'Got a result: ' . var_export($result, true);
    })
    ->otherwise(function ($reason) {
        echo 'Encountered an error: ' . $reason->getMessage();
    });
```