新規投稿
フォローする

POST時のエラー確認について

いつもお世話になっております。

アプリAで新規レコード保存時にアプリBにもレコード登録するプログラムを作成中です。

引っかかっているのは下記のプログラムです。開発ツールのコンソールにはエラーも何も表示されません。基本的にアプリBへの登録はうまくいかないのですが、数回に1度うまくいくときがあります。この現象自体も謎なのですが、もっと謎なのはエラー内容の確認方法です。

コンソールには「 console.log(error);」で引っかかったことは表示されますが、エラー内容については見えません。また、開発ツールのネットワークタブを見ても該当のPOSTが見当たりません。

エラーの原因究明方法がわからず、困っているため、アドバイスいただけますと幸いです。よろしくお願いいたします。

 

 

(function() {
  "use strict";

  var aAppId = 3; //[別アプリから更新]

  console.log('tre');

  //新規レコード作成時のイベント
  kintone.events.on(['app.record.create.submit.success'], async function(event) {

    var rec = await event['record'];
    var a1 = await rec['A']['value'];
    var b1  = await rec['B']['value'];

    //書き込み用
    var parm = {
    'app': aAppId,
    'record': {
    '日付': {'value': a1},
    'ルックアップ': {'value': b1},
    }
    };


    console.log(parm);
    kintone.api(kintone.api.url('/k/v1/record', true), 'POST', parm, async function(resp) {

        // success
        console.log(resp);

    }, function(error) {

        // error
        console.log(error);

    });

    });

})();

0

2件のコメント

Avatar
rex0220

kuma さん

async を指定していますが、肝心の kintone.api は非同期で処理されていますので

kintone.api が完了前に、イベント処理が完了しページ遷移が起こっています。

たまにうまくいくのは、たまたま kintone.api が早く完了した時だと思われます。


await を使いたいのであれば、下記が参考になると思います。

PromiseがわからないのでAsync/Awaitを使う

1
Avatar
kuma

rex0220さん

いつもありがとうございます。

教えていただいたサイトを参考に修正したところ

問題なく動くようになりました。ありがとうございました!

0
サインインしてコメントを残してください。