kintone.Promise を使用する

目次

kintone.Promise を使用する

kintone.Promise とは、Promise オブジェクトを使った kintone JavaScript API です。
kintone のイベントのうち Promise に対応しているイベントのハンドラー内では、Promise オブジェクトを return すると、非同期処理の完了を待ってから次の処理を実行できます。

kintone.Promise を利用すると、Internet Explorer 11 などの Promise に対応していないブラウザーでも Promise を扱うことができます。
Promise に対応しているブラウザーでは、kintone.Promise ではなく、ブラウザーの Promise を使うようにしてください。
Promise に対応しているブラウザーの詳細は、 MDN Web Docs | ブラウザーの互換性 (External link) を参照してください。

kintone カスタマイズにおける非同期処理の書き方は、 kintone カスタマイズで非同期処理をする を参照してください。

関数

kintone.Promise(executor)

引数

パラメーター名 必須 説明
executor 関数 必須 Promise オブジェクトに渡す、非同期処理の関数
executor の引数には、次の 2 つの関数が渡されます。
  • resolve:executor 内で、処理に成功したときに呼び出す関数
    resolve 関数に渡した値は、then メソッドの第 1 引数で受け取ることができます。
  • reject:executor 内で、処理に失敗したときに呼び出す関数
    reject 関数に渡した値は、then メソッドの第 2 引数または catch メソッドで受け取ることができます。

then メソッド、catch メソッドの仕様は MDN Web Docs | Promise (External link) に従います。

戻り値

kintone.Promise オブジェクト

対応イベント

レコード一覧イベント
レコード詳細イベント
レコード追加イベント
レコード編集イベント
レコード印刷画面イベント
グラフイベント
ポータル表示イベント

サンプルコード

kintone REST API リクエストを送信する API を使ったリクエストの場合
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
const body = {
  app: 1,
  id: 1
};

kintone.events.on('app.record.create.submit', (event) => {
  const record = event.record;
  return kintone.Promise((resolve, reject) => {
    kintone.api(kintone.api.url('/k/v1/record.json', true), 'GET', body).then((resp) => {
      record['文字列_1'].value = resp.record['文字列_1'].value;
      resolve(event);
    });
  });
});
kintone REST API リクエストを送信する API を使わないリクエストの場合
1
2
3
4
5
6
7
8
9
kintone.events.on('app.record.create.submit', (event) => {
  const record = event.record;
  return kintone.Promise((resolve, reject) => {
    setTimeout(() => {
      record['文字列_1'].value = 'sample';
      resolve(event);
    }, 10000);
  });
});