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 new 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);
});
});
|