

 AWS SDK untuk JavaScript V2 telah mencapai end-of-support. Kami menyarankan Anda bermigrasi ke [AWS SDK untuk JavaScript v3](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/). Untuk detail dan informasi tambahan tentang cara bermigrasi, silakan lihat [pengumuman](https://aws.amazon.com/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/) ini.

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

# Menggunakan Request Object Event Listener
<a name="using-a-response-event-handler"></a>

Jika Anda tidak membuat dan meneruskan fungsi callback anonim sebagai parameter saat Anda memanggil metode objek layanan, panggilan metode menghasilkan `AWS.Request` objek yang harus dikirim secara manual menggunakan `send` metodenya.

Untuk memproses respons, Anda harus membuat event listener untuk `AWS.Request` objek untuk mendaftarkan fungsi callback untuk panggilan metode. Contoh berikut menunjukkan cara membuat `AWS.Request` objek untuk memanggil metode objek layanan dan pendengar acara untuk pengembalian yang berhasil.

```
// create the AWS.Request object
var request = new AWS.EC2({apiVersion: '2014-10-01'}).describeInstances();

// register a callback event handler
request.on('success', function(response) {
  // log the successful data response
  console.log(response.data); 
});

// send the request
request.send();
```

Setelah `send` metode pada `AWS.Request` objek dipanggil, event handler mengeksekusi ketika objek layanan menerima objek`AWS.Response`.

Untuk informasi selengkapnya tentang `AWS.Request` objek, lihat [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Request.html](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Request.html)di Referensi API. Untuk informasi selengkapnya tentang `AWS.Response` objek, lihat [Menggunakan Response Object](the-response-object.md) atau [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Response.html](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Response.html)di Referensi API.

## Merantai Beberapa Panggilan Balik
<a name="response-chaining-callbacks"></a>

Anda dapat mendaftarkan beberapa callback pada objek permintaan apa pun. Beberapa panggilan balik dapat didaftarkan untuk acara yang berbeda atau acara yang sama. Selain itu, Anda dapat menghubungkan callback seperti yang ditunjukkan pada contoh berikut.

```
request.
  on('success', function(response) {
    console.log("Success!");
  }).
  on('error', function(response) {
    console.log("Error!");
  }).
  on('complete', function() {
    console.log("Always!");
  }).
  send();
```

## Permintaan Acara Penyelesaian Objek
<a name="request-object-completion-events"></a>

`AWS.Request`Objek memunculkan peristiwa penyelesaian ini berdasarkan respons dari setiap metode operasi layanan:
+ `success`
+ `error`
+ `complete`

Anda dapat mendaftarkan fungsi callback sebagai respons terhadap salah satu peristiwa ini. Untuk daftar lengkap semua peristiwa objek permintaan, lihat [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Request.html](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Request.html)di Referensi API.

### Acara Sukses
<a name="request-success-event"></a>

`success`Acara ini diangkat setelah respons yang berhasil diterima dari objek layanan. Berikut adalah cara Anda mendaftarkan fungsi callback untuk acara ini.

```
request.on('success', function(response) { 
  // event handler code
});
```

Respons menyediakan `data` properti yang berisi data respons serial dari layanan. Misalnya, panggilan berikut ke `listBuckets` metode objek layanan Amazon S3

```
s3.listBuckets.on('success', function(response) {
  console.log(response.data);
}).send();
```

mengembalikan respon dan kemudian mencetak konten `data` properti berikut ke konsol.

```
{ Owner: { ID: '...', DisplayName: '...' },
  Buckets: 
   [ { Name: 'someBucketName', CreationDate: someCreationDate },
     { Name: 'otherBucketName', CreationDate: otherCreationDate } ],
  RequestId: '...' }
```

### Peristiwa kesalahan
<a name="request-error-event"></a>

`error`Acara ini dimunculkan pada respons kesalahan yang diterima dari objek layanan. Berikut adalah cara Anda mendaftarkan fungsi callback untuk acara ini.

```
request.on('error', function(error, response) { 
  // event handling code
});
```

Ketika `error` acara dinaikkan, nilai `data` properti respon adalah `null` dan `error` properti berisi data kesalahan. `error`Objek terkait diteruskan sebagai parameter pertama ke fungsi callback terdaftar. Misalnya, kode berikut:

```
s3.config.credentials.accessKeyId = 'invalid';
s3.listBuckets().on('error', function(error, response) {
  console.log(error);
}).send();
```

mengembalikan kesalahan dan kemudian mencetak data kesalahan berikut ke konsol.

```
{ code: 'Forbidden', message: null }
```

### Acara Lengkap
<a name="request-complete-event"></a>

`complete`Acara dimunculkan ketika panggilan objek layanan telah selesai, terlepas dari apakah panggilan tersebut menghasilkan keberhasilan atau kesalahan. Berikut adalah cara Anda mendaftarkan fungsi callback untuk acara ini.

```
request.on('complete', function(response) { 
  // event handler code
});
```

Gunakan callback `complete` acara untuk menangani pembersihan permintaan apa pun yang harus dijalankan terlepas dari keberhasilan atau kesalahan. Jika Anda menggunakan data respons di dalam callback untuk `complete` acara tersebut, periksa dulu `response.error` properti `response.data` atau sebelum mencoba mengakses salah satu, seperti yang ditunjukkan pada contoh berikut.

```
request.on('complete', function(response) {
  if (response.error) {
    // an error occurred, handle it
  } else {
    // we can use response.data here
  }
}).send();
```

## Permintaan Objek Acara HTTP
<a name="request-object-http-events"></a>

`AWS.Request`Objek memunculkan peristiwa HTTP ini berdasarkan respons dari setiap metode operasi layanan:
+ `httpHeaders`
+ `httpData`
+ `httpUploadProgress`
+ `httpDownloadProgress`
+ `httpError`
+ `httpDone`

Anda dapat mendaftarkan fungsi callback sebagai respons terhadap salah satu peristiwa ini. Untuk daftar lengkap semua peristiwa objek permintaan, lihat [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Request.html](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Request.html)di Referensi API.

### Acara HttpHeaders
<a name="request-httpheaders-event"></a>

`httpHeaders`Acara ini dinaikkan ketika header dikirim oleh server jarak jauh. Berikut adalah cara Anda mendaftarkan fungsi callback untuk acara ini.

```
request.on('httpHeaders', function(statusCode, headers, response) {
  // event handling code
});
```

`statusCode`Parameter untuk fungsi callback adalah kode status HTTP. `headers`Parameter berisi header respons.

### Acara HttpData
<a name="request-httpdata-event"></a>

`httpData`Acara ini dinaikkan untuk mengalirkan paket data respons dari layanan. Berikut adalah cara Anda mendaftarkan fungsi callback untuk acara ini.

```
request.on('httpData', function(chunk, response) {
  // event handling code
});
```

Acara ini biasanya digunakan untuk menerima respons besar dalam potongan saat memuat seluruh respons ke dalam memori tidak praktis. Acara ini memiliki `chunk` parameter tambahan yang berisi sebagian data aktual dari server.

Jika Anda mendaftarkan callback untuk `httpData` acara tersebut, `data` properti respons berisi seluruh keluaran serial untuk permintaan tersebut. Anda harus menghapus `httpData` pendengar default jika Anda tidak memiliki parsing tambahan dan overhead memori untuk penangan bawaan.

### httpUploadProgress dan httpDownloadProgress Peristiwa
<a name="request-httpupload-download-progress-event"></a>

`httpUploadProgress`Acara ini muncul ketika permintaan HTTP telah mengunggah lebih banyak data. Demikian pula, `httpDownloadProgress` acara dinaikkan ketika permintaan HTTP telah mengunduh lebih banyak data. Berikut adalah cara Anda mendaftarkan fungsi callback untuk acara ini.

```
request.on('httpUploadProgress', function(progress, response) {
  // event handling code
})
.on('httpDownloadProgress', function(progress, response) {
  // event handling code
});
```

`progress`Parameter ke fungsi callback berisi objek dengan byte yang dimuat dan total permintaan.

### Acara HttpError
<a name="request-httperror-event"></a>

`httpError`Acara dimunculkan ketika permintaan HTTP gagal. Berikut adalah cara Anda mendaftarkan fungsi callback untuk acara ini.

```
request.on('httpError', function(error, response) {
  // event handling code
});
```

`error`Parameter ke fungsi callback berisi kesalahan yang dilemparkan.

### Acara HttpDone
<a name="request-httpdone-event"></a>

`httpDone`Acara ini dinaikkan ketika server selesai mengirim data. Berikut adalah cara Anda mendaftarkan fungsi callback untuk acara ini.

```
request.on('httpDone', function(response) {
  // event handling code
});
```