一覧画面でユーザー選択を行った際にユーザーの優先組織を組織選択にセットしたい

お世話になっております。

一覧画面でユーザー選択を行ったらそのユーザーの優先組織を組織選択に表示させるようにしたいです。
詳細画面では以下のように実装し上手くいきました。

kintone.events.on("app.record.edit.change.ユーザー選択", function (event) {
    var userId = event.record['ユーザー選択'].value[0].code;
    var body = {
      "codes": userId
    };

    kintone.api("/v1/users", "GET", body, function (user_resp) {
      kintone.api("/v1/organizations", "GET", {"ids":user_resp.users[0].primaryOrganization}, function (org_resp) {
        var orgArr = [];
        orgArr.push({
          "code": org_resp.organizations[0].code,
          "name": org_resp.organizations[0].name
        });

        var rec = kintone.app.record.get();
      rec.record["組織"].value = orgArr;
        kintone.app.record.set(rec);
      });
    });
});

ただ一覧画面でも同じことをしようと以下のように実装しても、組織が反映されません。

(kintone.app.record.set(event.record);の部分をreturn event;にしてもダメでした。。)

kintone.events.on("app.record.index.edit.change.ユーザー選択", function(event){
  var userId = event.record['ユーザー選択'].value[0].code;
  var body = {
    "codes": userId
  };
  
  kintone.api("/v1/users", "GET", body).then(function (user_resp) {
    kintone.api("/v1/organizations", "GET", {"ids":user_resp.users[0].primaryOrganization}).then(function (org_resp) {
      var orgArr = [];
      orgArr.push({
        "code": org_resp.organizations[0].code,
        "name": org_resp.organizations[0].name
      });

    event.record["組織"].value = orgArr;
      kintone.app.record.set(event.record);
    })
  });
});

 

恐れ入りますが、改善方法ご教授頂けないでしょうか。

一覧画面でのchangeイベントでは非同期処理を待ってからレコードの内容を書き換える方法はないですね…。
保存実行前(submit)であればPromiseが使えるので可能かと思います。

ご回答ありがとうございます。

承知致しました!