Menggunakan Request Object Event Listener - AWS SDK for JavaScript

Kami mengumumkan yang akan datang end-of-support untuk AWS SDK for JavaScript v2. Kami menyarankan Anda bermigrasi ke AWS SDK for JavaScript v3. Untuk tanggal, detail tambahan, dan informasi tentang cara bermigrasi, silakan merujuk ke pengumuman tertaut.

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

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 pemanggilan 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 objekAWS.Response.

Untuk informasi selengkapnya tentang AWS.Request objek, lihat Class: AWS.Requestdi Referensi API. Untuk informasi selengkapnya tentang AWS.Response objek, lihat Menggunakan Response Object atau Class: AWS.Responsedi Referensi API.

Merantai Beberapa Panggilan Balik

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

AWS.RequestObjek 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 Class: AWS.Requestdi Referensi API.

Acara Sukses

successAcara 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 respons dan kemudian mencetak konten data properti berikut ke konsol.

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

Peristiwa kesalahan

errorAcara 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. errorObjek 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

completeAcara 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 satunya, 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

AWS.RequestObjek 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 Class: AWS.Requestdi Referensi API.

Acara HttpHeaders

httpHeadersAcara 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 });

statusCodeParameter untuk fungsi callback adalah kode status HTTP. headersParameter berisi header respons.

Acara HttpData

httpDataAcara 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

httpUploadProgressAcara 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 });

progressParameter ke fungsi callback berisi objek dengan byte yang dimuat dan total permintaan.

Acara HttpError

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

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

errorParameter ke fungsi callback berisi kesalahan yang dilemparkan.

Acara HttpDone

httpDoneAcara 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 });