5. NEC BaaS JavaScript API の基本

5.1. 非同期呼び出し

NEC BaaS JavaScript API は、ほぼ全て非同期呼び出しとなります。 API の処理結果は、コールバックで受け取る形になります。
以下に、オブジェクトをクエリする場合の例を示します。
本例では "score" が "30" 以下のオブジェクトを検索します。
$(function() {
    var bucket = new Nebula.ObjectBucket("ApiBasic1");                               // クエリ発行先のバケットを設定
    var clause = Nebula.Clause.lessThan("score", 30);        // 検索条件を設定
    var conditions = new Nebula.ObjectQuery();               // クエリのインスタンスを生成
    conditions.setClause(clause);                            // 検索条件を設定

    callbacks = {
        success: function(objects) {
            // 成功時の処理
        },
        error: function(err) {
            // 失敗時の処理
        }
    };

    bucket.query(conditions, callbacks);                     // クエリ発行
});
検索条件の設定には、 Clause クラスを使用します。
設定した検索条件は、 ObjectQuery() メソッドで生成したインスタンスに格納します。
API 呼び出し時は、コールバック関数を指定します。
処理が成功した場合は success で指定したコールバック関数が、失敗した場合は error で指定したコールバック関数が呼び出されます。
最後に、クエリを発行します。

5.2. ES6 Promise

本 JavaScript API は、ES6(ES2015)標準の Promise にも対応しており、非同期呼び出しを書きやすくなっています。

以下に、 Promise を使用する場合の例を示します。

$(function() {
    var bucket = "ApiBasic1";
    var clause = Nebula.Clause.lessThan("score", "30");
    var conditions = new Nebula.ObjectQuery();
    conditions.setClause(clause);

    bucket.query(conditions)
        .then(function(objects) {
            // 成功時の処理。
        })
        .catch(function(err) {
            // 失敗時の処理。
        });

});

callback 引数を省略すると、API からは Promise が返却されますので、.then(), .catch() で処理を 記述します。

ES6 Promise の詳細については、以下の参考文献を参照してください。

注釈

ES6 Promise 非対応ブラウザ(IE11、Android 4.4以下標準ブラウザなど)で Promise を使用する場合は、 別途 ES6 Promise Polyfill ライブラリの組み込みが必要です。 手順は SDKセットアップ手順 を参照してください。

5.2.1. jQuery.Deferred サポートについて

v4.0.1 までサポートしていた jQuery.Deferred サポートは廃止となりました。今後は Promise を使用するようにしてください。

jQuery.Deferred から Promise への移行は以下のように行ってください。

  • .done() メソッドはありませんので、.then() メソッドに変更してください。
  • .fail() メソッドはありませんので、.catch() メソッドに変更してください。