garoon.Promise を使用する
Garoon のイベントのうち、Promise に対応しているイベントのハンドラー内では、Promise オブジェクトを return すると、非同期処理の完了を待ってから次の処理を実行できます。
garoon.Promise とは、Promise オブジェクトを使った Garoon JavaScript API です。
garoon.Promise を利用すると、Internet Explorer 11 などの Promise に対応していないブラウザーでも Promise を扱うことができます。
Promise に対応しているブラウザーでは、garoon.Promise ではなく、ブラウザーの Promise を使うようにしてください。
Promise に対応しているブラウザーの詳細は、
MDN Web Docs | ブラウザーの互換性
を参照してください。
関数
garoon.Promise(executor)
利用できるバージョン
- クラウド版 Garoon
- パッケージ版 Garoon バージョン 4.6 以降
引数
パラメーター名 |
型 |
必須 |
説明 |
executor |
関数 |
必須 |
Promise オブジェクトに渡す、非同期処理の関数 executor の引数には、次の 2 つの関数が渡されます。resolve :executor 内で、処理に成功したときに呼び出す関数 resolve 関数に渡した値は、then メソッドの第 1 引数で受け取ることができます。reject :executor 内で、処理に失敗したときに呼び出す関数 reject 関数に渡した値は、then メソッドの第 2 引数または catch メソッドで受け取ることができます。
|
then メソッド、catch メソッドの仕様は
MDN Web Docs | Promise
に従います。
戻り値
garoon.Promise オブジェクト
対応イベント
スケジュール
メール
ワークフロー
API 実行
サンプルコード
1
2
3
4
5
6
7
8
9
10
11
12
13
|
const body = {
id: 1
};
garoon.events.on('schedule.event.create.submit', (event) => {
return garoon.Promise((resolve, reject) => {
garoon.api(garoon.api.url('/api/v1/schedule/events/1', 'GET', body).then((resp) => {
const scheduleEvent = event.event;
scheduleEvent.subject = 'sample_schedule';
resolve(event);
}));
});
});
|
1
2
3
4
5
6
7
8
9
|
garoon.events.on('schedule.event.create.submit', (event) => {
return new garoon.Promise((resolve, reject) => {
setTimeout(() => {
const scheduleEvent = event.event;
scheduleEvent.subject = 'sample_schedule';
resolve(event);
}, 10000);
});
});
|