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 lebih lanjut tentang AWS.Request objek, lihat Class: AWS.Requestdi API Referensi. Untuk informasi lebih lanjut tentang AWS.Response objek, lihat Menggunakan Response Object atau Class: AWS.Responsedi API Referensi.

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 dalam menanggapi salah satu peristiwa ini. Untuk daftar lengkap semua peristiwa objek permintaan, lihat Class: AWS.Requestdi API Referensi.

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 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 HTTP Acara

AWS.RequestObjek memunculkan HTTP peristiwa ini berdasarkan respons dari setiap metode operasi layanan:

  • httpHeaders

  • httpData

  • httpUploadProgress

  • httpDownloadProgress

  • httpError

  • httpDone

Anda dapat mendaftarkan fungsi callback dalam menanggapi salah satu peristiwa ini. Untuk daftar lengkap semua peristiwa objek permintaan, lihat Class: AWS.Requestdi API Referensi.

httpHeaders Acara

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 HTTP status. headersParameter berisi header respons.

httpData Acara

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 dimunculkan ketika HTTP permintaan telah mengunggah lebih banyak data. Demikian pula, httpDownloadProgress acara dinaikkan ketika HTTP permintaan 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.

httpError Acara

httpErrorAcara dinaikkan ketika HTTP permintaan 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.

httpDone Acara

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