View a markdown version of this page

Menggunakan Jan JavaScript ji - AWS SDK untuk JavaScript

AWS SDK untuk JavaScript V2 telah mencapai akhir dukungan. Kami menyarankan Anda bermigrasi ke AWS SDK untuk JavaScript v3. Untuk detail dan informasi tambahan tentang cara bermigrasi, silakan lihat pengumuman ini.

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

Menggunakan Jan JavaScript ji

AWS.Request.promiseMetode ini menyediakan cara untuk memanggil operasi layanan dan mengelola aliran asinkron alih-alih menggunakan panggilan balik. Dalam Node.js dan skrip browser, AWS.Request objek dikembalikan ketika operasi layanan dipanggil tanpa fungsi callback. Anda dapat memanggil send metode permintaan untuk melakukan panggilan layanan.

Namun, AWS.Request.promise segera memulai panggilan layanan dan mengembalikan janji yang dipenuhi dengan data properti respons atau ditolak dengan error properti respons.

var request = new AWS.EC2({apiVersion: '2014-10-01'}).describeInstances(); // create the promise object var promise = request.promise(); // handle promise's fulfilled/rejected states promise.then( function(data) { /* process the data */ }, function(error) { /* handle the error */ } );

Contoh berikutnya mengembalikan janji yang dipenuhi dengan data objek, atau ditolak dengan error objek. Menggunakan janji, panggilan balik tunggal tidak bertanggung jawab untuk mendeteksi kesalahan. Sebaliknya, panggilan balik yang benar dipanggil berdasarkan keberhasilan atau kegagalan permintaan.

var s3 = new AWS.S3({apiVersion: '2006-03-01', region: 'us-west-2'}); var params = { Bucket: 'bucket', Key: 'example2.txt', Body: 'Uploaded text using the promise-based method!' }; var putObjectPromise = s3.putObject(params).promise(); putObjectPromise.then(function(data) { console.log('Success'); }).catch(function(err) { console.log(err); });

Mengkoordinasikan Beberapa Janji

Dalam beberapa situasi, kode Anda harus membuat beberapa panggilan asinkron yang memerlukan tindakan hanya ketika semuanya telah berhasil dikembalikan. Jika Anda mengelola panggilan metode asinkron individual dengan janji, Anda dapat membuat janji tambahan yang menggunakan metode tersebut. all Metode ini memenuhi janji payung ini jika dan ketika susunan janji yang Anda berikan ke dalam metode terpenuhi. Fungsi callback diteruskan array nilai janji yang diteruskan ke all metode.

Dalam contoh berikut, AWS Lambda fungsi harus membuat tiga panggilan asinkron ke Amazon DynamoDB tetapi hanya dapat diselesaikan setelah janji untuk setiap panggilan terpenuhi.

Promise.all([firstPromise, secondPromise, thirdPromise]).then(function(values) { console.log("Value 0 is " + values[0].toString); console.log("Value 1 is " + values[1].toString); console.log("Value 2 is " + values[2].toString); // return the result to the caller of the Lambda function callback(null, values); });

Browser dan Node.js Dukungan untuk Janji

Dukungan untuk JavaScript janji asli (ECMAScript 2015) tergantung pada JavaScript mesin dan versi di mana kode Anda dieksekusi. Untuk membantu menentukan dukungan untuk JavaScript janji di setiap lingkungan tempat kode Anda perlu dijalankan, lihat Tabel Kompatibilitas ECMAScript di. GitHub

Menggunakan Implementasi Promise Lainnya

Selain implementasi janji asli di ECMAScript 2015, Anda juga dapat menggunakan pustaka janji pihak ketiga, termasuk:

Pustaka janji opsional ini dapat berguna jika Anda memerlukan kode Anda untuk dijalankan di lingkungan yang tidak mendukung implementasi janji asli di ECMAScript 5 dan ECMAScript 2015.

Untuk menggunakan pustaka janji pihak ketiga, tetapkan ketergantungan promise pada SDK dengan memanggil setPromisesDependency metode objek konfigurasi global. Di skrip browser, pastikan untuk memuat pustaka janji pihak ketiga sebelum memuat SDK. Dalam contoh berikut, SDK dikonfigurasi untuk menggunakan implementasi di pustaka janji bluebird.

AWS.config.setPromisesDependency(require('bluebird'));

Untuk kembali menggunakan implementasi janji asli dari JavaScript mesin, panggil setPromisesDependency lagi, berikan a al null ih-alih nama pustaka.