質問編集履歴

1 質問を修正しました

退会済みユーザー

退会済みユーザー

2018/01/18 04:08  投稿

値がundefindになる時がある
いつもお世話になっております。
monacaとニフクラ mobile backendを使ってアプリを作成しているのですが、取得した値が`undefind`になる時があります。
monacaとニフクラ mobile backendを使ってアプリを作成しているのですが、取得した値(`place_id`)が`undefind`になる時があります。
私のソースコードがいけないのか、monacaがいけないのか判断がつかず…
以下が当該のソースコードです。
事前にDBに`place_id`が1~5の場所が登録してあり、ランダムで場所を取得し、取得済み(`visited_place_id`)として別のテーブルに(配列で)保存するという挙動になります。
```html
<!DOCTYPE HTML>
<html>
<head>
 <meta charset="utf-8">
 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
 <meta http-equiv="Content-Security-Policy" content="default-src * data:; style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'">
 <link rel="stylesheet" href="components/loader.css">
 <link rel="stylesheet" href="css/style.css">
 <script src="components/loader.js"></script>
 <script src="js/ncmb-2.1.3.min.js"></script>
 <script src="js/custom.js"></script>
 <script>
   $(function()
   {
   //mBaaSの初期化
     var application_key = "XXXXXXX";
     var client_key = "XXXXXXX";
     var ncmb = new NCMB(application_key, client_key);
     var place_id;
     var user_obj_id;
     var visited_place_id;
     
       $('#save_id').on('click', function()
       {
         //userのobjectIdを取得する
         var user = ncmb.User.getCurrentUser();
         user_obj_id = user["objectId"];
       
         //場所のidを取得する
         var Coordinate = ncmb.DataStore("Coordinate");
         Coordinate.fetchAll()
           .then(function(results){
             place_id = results[Math.floor(Math.random() * 4)].place_id;
             console.log("place_id_1 : " + place_id);
             return place_id;
           })
           .catch(function(err){
             alert("place_idとれなかったよ");
           });
         
         //visited_place_idにplace_idを追加する
         var visited = ncmb.DataStore("Visited");
         visited.equalTo("user_objectId", user_obj_id)
           .fetchAll()
           .then(function(results){
             var visited_place_id = results[0].visited_place_id;
             visited_place_id.push(place_id);
             results[0].set("visited_place_id", visited_place_id)
             .update()
             .then(function()
             {
               alert("更新完了!");
               location.href = "./visited_list.html";
             })
             .catch(function(err)
             {
               alert("送信できんかった\n" + err);
             })
             return false;
           })
           .catch(function(err){
             console.log(err);
           });
         return false;
       });
       
     
   });
   </script>
</head>
<body>
   <p>
     ここはhome.htmlです
   </p>
   <form>
     <input type="submit" id="save_id" value="idを保存する!" />
     <!-- <input type="submit" id="logout" value="ログアウト" /> -->
   </form>
</body>
</html>
```
初歩的な質問で申し訳ないですが、ご教授いただければと思います。
どうぞよろしくお願い致します。
  • JavaScript

    30498 questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • Monaca

    1427 questions

    「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る