# ユーザ関数からのreturnがundefinedになってしまう

**URL:** <https://community.cybozu.dev/t/topic/5440>\
**Category:** kintone 開発相談\
**Created:** [2021 年 11 月 7 日午後 5:23 UTC](https://community.cybozu.dev/t/topic/5440 "2021-11-07T17:23:24Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account2905](https://avatars.discourse-cdn.com/v4/letter/l/e9a140/32.png) [@Legacy\_Account2905](https://community.cybozu.dev/u/Legacy_Account2905)\
**Post date:** [2021 年 11 月 7 日午後 5:23 UTC](https://community.cybozu.dev/t/topic/5440/1 "2021-11-07T17:23:24Z")

</div>

初めて投稿します。

現在、追加画面を開いた際に申込番号を発行するようにJavaScritptを書いています。

ユーザ関数から、mainに戻った際の返り値がundefinedになってしまう状況になっており、困っています。いろいろ試行錯誤しては見たものの、躓いてしまっている状況です。

どのように修正すべきかご教示いただけますでしょうか。

```
(function() {
"use strict";
kintone.events.on('app.record.create.show',function(event){
//追加開いたら発火する
var min = 10000000000 ;
var max = 99999999999 ;
var a = Math.floor( Math.random() * (max + 1 - min) ) + min ;

var c = valdate_check(a);
console.log("結果:"+c)
//return kintone.api(kintone.api.url('/k/v1/records', true),'GET')
});

function valdate_check(id){
var query = {
"app": kintone.app.getId(),
"query": '申込番号="'+id+'"'
};

//alert('申込番号="'+id+'"');

kintone.api(kintone.api.url('/k/v1/records.json', true), 'GET', query, function(success){
console.log(success);
var records = success.records.length;
//alert(records);
return records;
},function(error){
var errmsg = 'レコード取得時にエラーが発生しました。';
if (error.message !== undefined) {
errmsg += '' + resp.message;
}
alert(errmsg);
});
}
})();

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account63](https://avatars.discourse-cdn.com/v4/letter/l/6de8d8/32.png) [@Legacy\_Account63](https://community.cybozu.dev/u/Legacy_Account63)\
**Post date:** [2021 年 11 月 7 日午後 11:38 UTC](https://community.cybozu.dev/t/topic/5440/2 "2021-11-07T23:38:31Z")

</div>

validate\_check内で非同期処理（kintone.apiを呼び出す処理）をしているからですね。validate\_checkが完了するまえにconsole.logまで抜けてしまっています。

[https://developer.cybozu.io/hc/ja/articles/360023047852-kintoneにおけるPromiseの書き方の基本](https://developer.cybozu.io/hc/ja/articles/360023047852-kintone%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8BPromise%E3%81%AE%E6%9B%B8%E3%81%8D%E6%96%B9%E3%81%AE%E5%9F%BA%E6%9C%AC)  
こちらなどをみながら、Promiseをもちいてkintone.apiの処理がおわるのを待つような書き方が必要です。

（理解のために、まず関数に切り出さずにやるといいとおもいます）

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2905](https://avatars.discourse-cdn.com/v4/letter/l/e9a140/32.png) [@Legacy\_Account2905](https://community.cybozu.dev/u/Legacy_Account2905)\
**Post date:** [2021 年 11 月 20 日午後 9:20 UTC](https://community.cybozu.dev/t/topic/5440/3 "2021-11-20T21:20:34Z")

</div>

村濱さま

いただいたURLを見て、修正したところ

無事、動作するようになりました。

ご回答いただきありがとうございました。

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex015/uploads/cybozu/original/1X/d5c841c3c5a6cb66eed514001c1b45147c9e1f4f.png) [@system](https://community.cybozu.dev/u/system)\
**Post date:** [2025 年 4 月 25 日午前 6:04 UTC](https://community.cybozu.dev/t/topic/5440/4 "2025-04-25T06:04:29Z")

</div>

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。
