ajaxで値を取得したのですが、returnしても値がとれません。
javascript
1$(function(){ 2 let lists = getLists(id); 3 console.log(lists); 4}); 5 6function getLists(id) { 7 $.ajax({ 8 type: 'POST', 9 url: '/test/test.json', 10 data: { 11 'id': id, 12 'token_key': token() 13 }, 14 cache: false, 15 dataType: 'json', 16 }).done(function(res) { 17 let resLists = res.lists; 18 console.log(resLists); 19 createTable(resLists) 20 return lists; 21 }).fail(function(res) { 22 alert("失敗しました"); 23 return []; 24 }); 25} 26 27function createTable(lists) { 28 let table = $('#table tbody').children(); 29 if (table.length !== 0) 30 { 31 $('#table tbody').empty(); 32 } 33 lists.forEach(function(val,key) { 34 source = ` 35 <tr> 36 <td>${val.name}</td> 37 <td>${val.address}</td> 38 <td>${val.email}</td> 39 </tr> 40 `; 41 $('#table tbody').append(source); 42 }); 43} 44 45function token() { 46//トークンを生成 47}
console.log(lists)では、returnしている値を取得できませんでした。
でも、doneのところで実行しているconsole.log(resLists);は
値が取得できていることを確認しています。
また、その後実行しているcreateTable()でも値がとれていて
その後の処理も実行できました。
なぜreturnしているのに、console.log(lists)のところで値がとれないのでしょうか?
もしよければアドバイスよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/19 12:57
2021/05/19 13:28 編集