Kintoneのプラグイン設定画面で、作成しているアプリの一覧を取得してから処理をしたいのですが、同期処理の概念を理解できずに困っています。
以下のような処理で、ログが1→2→3→4と順番に出てほしいのですが、「
3.got response.」が最後に出力されてしまいます。
jQuery.noConflict();
var apps = [];
(function ($, _pid) {
"use strict";
$(function () {
console.log("1.load event start.")
// 100件ずつアプリ一覧を取得
getApps(0, 100);
console.log("4.load event fin.")
});
/**
* アプリの一覧を取得する
*/
function getApps(offset, limit) {
console.log("2.getApps method start.")
var data = {
"offset": offset,
"limit": limit
}
return kintone.api('/k/v1/apps', 'GET', data).then(function (res) {
console.log("3.got response.")
// 取得結果0件の場合は終了
if (res.apps.length === 0) return;
// アプリ情報を保持する
for (var i in res.apps) {
apps.push(res.apps[i]);
}
// 最大件数分取得した場合は、再帰的に呼び出す
if (res.apps.length === limit) {
getApps(offset + limit, limit);
}
});
}
})(jQuery, kintone.$PLUGIN_ID);
kintoneのPromise(https://developer.cybozu.io/hc/ja/articles/204564604 )についても調べてみましたが、この例はイベントと関連しているので、Promiseのことをよく分かっていない身としては、上記のコードにこの例を移植することができずに困っています。
上記のコードで、同期してアプリ情報を取得するサンプルを教えていただけないでしょうか。