サンプルコードの注意点

本ガイドで扱うサンプルコードは、以下の原則に基づいて記述されています。目的の Web アプリに組み込む際は、適時、実装に合わせて書き換えてください。

const と let

サンプルコード中、TypeScript の変数は const として宣言し、その後の処理で値を不変にするものとして記述しています。

実際のプログラムで値の書き換えを行いたい場合、そのままではエラーとなるため、let による宣言に書き換えるなどして実装してください。

TypeScript での型の明示

サンプルコード中、TypeScript で扱う変数の型は、原則として以下のルールで記述しています。

  • API に渡す引数値など、型推論によって型情報を暗黙的に記述できる場合、変数の型を省略して記述しています。

  • API からの戻り値やコールバック関数の引数など、Web アプリの実装を行う際にリファレンスを調べないと型情報を認識できないものは、記法として冗長であっても、サンプルコード上に型情報を明示しています。Web アプリの実装時にはこれらの型宣言は省略することができます。

Promise とコールバック

Thing-IF SDK ではノンブロッキング API の実装手段として、Promise を利用する方法と、コールバック関数を利用する方法の両方をサポートしています。

リファレンスガイドのサンプルコードでは、原則として、Promise を使った実装のみを記述しています。Thing-IF SDK の API でコールバック関数を利用する場合、JSDoc の API 仕様を参考にして実装してください。

例えば、コマンドの実行 に記述されている以下のような Promise のコードは、コールバック関数を利用して記述することができます。

Promise

  • const actions = [
      {"turnPower":{"power":true}},
      {"setPresetTemperature":{"presetTemperature":25}},
      {"setFanSpeed":{"fanSpeed":5}}
    ];
    const commandRequest = new ThingIF.PostCommandRequest("AirConditioner-Demo", 1, actions);
    api.postNewCommand(commandRequest).then((command: ThingIF.Command) => {
      // Do something.
    }).catch((error: ThingIF.ThingIFError) => {
      // Handle the error.
    });
  • var actions = [
      {"turnPower":{"power":true}},
      {"setPresetTemperature":{"presetTemperature":25}},
      {"setFanSpeed":{"fanSpeed":5}}
    ];
    var commandRequest = new ThingIF.PostCommandRequest("AirConditioner-Demo", 1, actions);
    api.postNewCommand(commandRequest).then(
      function(command) {
        // Do something.
      }
    ).catch(
      function(error) {
        // Handle the error.
      }
    );

コールバック関数

  • const actions = [
      {"turnPower":{"power":true}},
      {"setPresetTemperature":{"presetTemperature":25}},
      {"setFanSpeed":{"fanSpeed":5}}
    ];
    const commandRequest = new ThingIF.PostCommandRequest("AirConditioner-Demo", 1, actions);
    api.postNewCommand(commandRequest, (error: Error, command: ThingIF.Command) => {
      if (error) {
        // Handle the error.
        return;
      }
      // Do something.
    });
  • var actions = [
      {"turnPower":{"power":true}},
      {"setPresetTemperature":{"presetTemperature":25}},
      {"setFanSpeed":{"fanSpeed":5}}
    ];
    var commandRequest = new ThingIF.PostCommandRequest("AirConditioner-Demo", 1, actions);
    api.postNewCommand(commandRequest, function (error, command) {
      if (error) {
        // Handle the error.
        return;
      }
      // Do something.
    });

なお、Promise を使った実装方法は、Kii Cloud SDK のチュートリアルにある Promise の利用 や、実装ガイドラインの Promise の利用 を参考にしてください。