kintone.Promise使いこなしてますか?
僕はまだまだです
Promiseを動的に生成してデータ処理したい場合の処理について簡単にまとめてみました。
シチュエーション
- アプリAから該当データを1000件取ってきて、アプリBに追加したい
- POST APIを使いたいが仕様上100件づつまとめて処理したい
- 最初の100件追加…次の100件追加…さらに次の100件追加…と順にAPIに送って欲しい
- Promise.then()で順次処理できるのはわかるけど、データ件数は不定。
- とにかく動的にPromise-then()で処理をしていきたい!
コーディング例
あれこれ迷いながら、ようやく完成。だいたいこんな感じ。
var count = 0;
//promiseオブジェクトを返す関数を定義
var addPromise = function() {
return new Promise(function(resolve, reject) {
kintone.api(
kintone.api.url('/k/v1/records', true),
'POST', {
app: アプリのID,
"records":promiseArr[count]/* 100件単位のデータと思って下さい。これがkintoneAPIにPOSTされる */
}
).then(function(resp){
count+=1;
resolve();
});
});
};
//ここで動的にthenをつけていく
var doPromise = addPromise();
for (var i = 0; i < promiseArr.length; i++) {
doPromise = doPromise.then(addPromise);
}