kintone APIを使用して抽出したデータを変数に待避させたい。

kintone APIを使用してデータを抽出し、その一部を変数に退避させて、別で使用したいと考えております。

kintone APIの範囲内では正しい値が取得できますが、
kintone APIの範囲外で使用しようとするとundefinedと表示されます。

範囲外で値を使用する場合、何か考慮が必要でしょうか。

ご教授ください。

 

現在のロジック:

//**************************************
// データチェック
//**************************************
function CheckData(updateAppId,record){
var result = 1;
// リクエストパラメータ
var requestParam = {
‘app’: updateAppId,
‘query’: "ID = " + record.ID.value
};
//更新先データ取得
kintone.api(kintone.api.url(‘/k/v1/records’, true), ‘GET’, requestParam, function(resp)
{
var records2 = resp.records;
if (!records2 || !records2.length) {

result = 0;
window.alert(result); --正しく表示
}
else
{
result = records2[0].レコード番号.value;
window.alert(result); --正しく表示

}
});
window.alert(result); --undefinedが表示
return result;
}

Toshihiro.M さん

kintone.api は、非同期処理で、処理を記述した順番では実行されません。

実行は、下記のようになります。

  1. api 発行

kintone.api(…

  1. api 発行後応答を待たずに、実行。まだデータは無い。

window.alert(result); --undefinedが表示
return result;

※submit イベント等の場合は、return により、イベント処理が完了するため、画面遷移が起こる。

api の応答を待ちたい場合は、promise 処理にしましょう。

3.api 応答後(callback処理)

var records2 = resp.records

ということで、APIの応答内容を使う処理は、api callback に記述するか、関数呼び出しにしてください。

また、必要に応じてpromise 処理にしましょう。

rex0220さん

返信ありがとうございます。

非同期処理の件、理解できました。

promise 処理については、別途調べてみます。