teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

関数で非同期通信の結果をreturnするために、

2019/02/12 14:54

投稿

noka_blank
noka_blank

スコア252

answer CHANGED
@@ -10,4 +10,40 @@
10
10
  res = reslut;
11
11
  });
12
12
  return res;
13
+ ```
14
+
15
+ 追記 : 非同期通信の結果を関数からreturnさせるため、全体の構造を修正しました。
16
+
17
+ ```js
18
+ $(function() {
19
+ var array = [];
20
+
21
+ // 関数からは$.postの結果をreturnする
22
+ function pics() {
23
+ return $.post('sampleAjax.php', {
24
+ kind: 'picks'
25
+ });
26
+ };
27
+
28
+ function tags() {
29
+ return $.post('sampleAjax.php', {
30
+ kind: 'tags'
31
+ });
32
+ };
33
+
34
+ $('#push').on('click', function() {
35
+ $.post('sampleAjax.php', {
36
+ kind: 'hotels'
37
+ }, function(result) {
38
+ // 返り値のdone関数を使って、非同期通信の結果を取得できます。
39
+ pics().done(function(result) {
40
+ console.log('pics', result);
41
+ });
42
+ tags().done(function(result) {
43
+ console.log('tags', result);
44
+ });
45
+ });
46
+ return false;
47
+ });
48
+ });
13
49
  ```