無名コールバック関数の使用 - AWS SDK for JavaScript

AWS SDK for JavaScript v2 の近日発表 end-of-support しました。AWS SDK for JavaScript v3 に移行することをお勧めします。日付、その他の詳細、移行方法については、リンク先の発表内容を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

無名コールバック関数の使用

AWS.Request オブジェクトを作成する各サービスオブジェクトメソッドは、最後のパラメータとして無名コールバック関数を使用できます。このコールバック関数の署名は次のとおりです。

function(error, data) { // callback handling code }

このコールバック関数が実行されるのは、成功したレスポンスまたはエラーデータが返されたときです。メソッドの呼び出しに成功すると、レスポンスの内容は data パラメータでコールバック関数に利用可能になります。呼び出しが成功しない場合、エラーの詳細は error パラメータに記載されます。

通常、コールバック関数内のコードはエラーをテストし、エラーが返された場合はそれを処理します。エラーが返されない場合、コードは data パラメータからレスポンス内のデータを取得します。コールバック関数の基本的な形式は次の例のようになります。

function(error, data) { if (error) { // error handling code console.log(error); } else { // data handling code console.log(data); } }

前の例では、エラーまたは返されたデータの詳細がコンソールのログに記録されます。サービスオブジェクトのメソッド呼び出しの一部として渡されるコールバック関数の例を、次に示します。

new AWS.EC2({apiVersion: '2014-10-01'}).describeInstances(function(error, data) { if (error) { console.log(error); // an error occurred } else { console.log(data); // request succeeded } });

リクエストオブジェクトとレスポンスオブジェクトへのアクセス

コールバック関数内で、JavaScript キーワード this は、ほとんどのサービスの基盤となる AWS.Response オブジェクトを参照します。次の例では、未加工のレスポンスデータとヘッダーをログに記録してデバッグを支援するため、AWS.Response オブジェクトの httpResponse プロパティをコールバック関数内で使用します。

new AWS.EC2({apiVersion: '2014-10-01'}).describeInstances(function(error, data) { if (error) { console.log(error); // an error occurred // Using this keyword to access AWS.Response object and properties console.log("Response data and headers: " + JSON.stringify(this.httpResponse)); } else { console.log(data); // request succeeded } });

また、AWS.Response オブジェクトには元のメソッド呼び出しによって送信された AWS.Request を含む Request プロパティがあるため、行われたリクエストの詳細にアクセスすることもできます。