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

質問編集履歴

9

補足

2017/11/20 00:49

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -51,4 +51,4 @@
51
51
  ```
52
52
 
53
53
  # 補足
54
- 低評価を押す場合は理由を添えてください。マイナス評価が多いにも関わらず、物凄く有益な回答を頂いており、価値あるページになっていると思います。
54
+ 低評価を押す場合は理由を添えてください。マイナス評価が多いにも関わらず、**質問の趣旨に沿った**物凄く有益な回答を頂いており、価値あるページになっていると思います。あえて、質問の趣旨に意図的に沿わない回答をする必要はないかと思いますので、的外れな回答はお控えください。

8

ほそく

2017/11/20 00:49

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,13 @@
1
1
  以下のコードを用いてライブラリやPromiseなどを使わずに、5つのurlに対して次々にほぼ同時にリクエストを送って、「1.txt、2.txt、3.txt、4.txt、5.txt」と指定した順番にレスポンス結果を出力し、最後に「all done!」と出力する為には、みなさんならどのような書き方をしますか?
2
2
 
3
- 注意点としては、1つの目のリクエストのレスポンスを受けた後に、次のリクエストを送るといった順列処理ではなく、最初に5つのリクエストをほぼ同時に行って、指定の順序でレスポンスを出力するというところです。また、以下に掲載するコードを使ってください。(どうしても使いたくない場合は、それはそれでOKとします。。。)また、前述の通り、ライブラリやPromiseなどを使うのはNGとします。
3
+ 注意点としては、**1つの目のリクエストのレスポンスを受けた後に、次のリクエストを送るといった順列処理ではなく、最初に5つのリクエストをほぼ同時に行って、指定の順序でレスポンスを出力する**というところです。
4
4
 
5
+ 補足:KSwordOfHasteさんの回答にあったように、**「結果が揃っている部分だけはできるだけ早く(しかし順番を守って)処理したい」**という想定です。
6
+
7
+ また、以下に掲載するコードを使ってください。どうしても使いたくない場合は、それはそれでOKとします。。。**以下の掲載コードにある関数外にコードを書くのはOKです。**
8
+
9
+ また、前述の通り、ライブラリやPromiseなどを使うのはNGとします。
10
+
5
11
  尚、自分も後で自分なりのやり方を投稿しますが、やり方を教えて欲しいといった類の質問ではなく、どういったやり方をみなさんがされるかに興味があるため、「コードを載せてください」といった趣旨に沿わないコメントは不要です。
6
12
 
7
13
  ```JavaScript

7

2017/11/20 00:47

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -45,4 +45,4 @@
45
45
  ```
46
46
 
47
47
  # 補足
48
- 低評価を押す場合は理由を添えてください。
48
+ 低評価を押す場合は理由を添えてください。マイナス評価が多いにも関わらず、物凄く有益な回答を頂いており、価値あるページになっていると思います。

6

ほそく

2017/11/20 00:32

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -42,4 +42,7 @@
42
42
  4th request
43
43
  5th request
44
44
  all done!
45
- ```
45
+ ```
46
+
47
+ # 補足
48
+ 低評価を押す場合は理由を添えてください。

5

comment

2017/11/19 12:13

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -5,7 +5,9 @@
5
5
  尚、自分も後で自分なりのやり方を投稿しますが、やり方を教えて欲しいといった類の質問ではなく、どういったやり方をみなさんがされるかに興味があるため、「コードを載せてください」といった趣旨に沿わないコメントは不要です。
6
6
 
7
7
  ```JavaScript
8
+ // ajaxのフェイクバージョンのつもり
8
- function ajax(url, callback){
9
+ function fakeAjax(url, callback){
10
+ //レスポンスまでのランダムなタイムラグをシミュレート
9
11
  var time = Math.floor(Math.random()*(3000-1000)+1000);
10
12
  var responseMock = {
11
13
  "1.txt": "1st request",

4

修正

2017/11/19 11:47

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -6,8 +6,7 @@
6
6
 
7
7
  ```JavaScript
8
8
  function ajax(url, callback){
9
- var time = Math.floor(Math.random() * (3000 - 1000) + 1000);
9
+ var time = Math.floor(Math.random()*(3000-1000)+1000);
10
-
11
10
  var responseMock = {
12
11
  "1.txt": "1st request",
13
12
  "2.txt": "2nd request",

3

修正

2017/11/19 11:42

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -5,7 +5,7 @@
5
5
  尚、自分も後で自分なりのやり方を投稿しますが、やり方を教えて欲しいといった類の質問ではなく、どういったやり方をみなさんがされるかに興味があるため、「コードを載せてください」といった趣旨に沿わないコメントは不要です。
6
6
 
7
7
  ```JavaScript
8
- function ajax = (url, callback) => {
8
+ function ajax(url, callback){
9
9
  var time = Math.floor(Math.random() * (3000 - 1000) + 1000);
10
10
 
11
11
  var responseMock = {

2

mock

2017/11/19 11:41

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -8,7 +8,7 @@
8
8
  function ajax = (url, callback) => {
9
9
  var time = Math.floor(Math.random() * (3000 - 1000) + 1000);
10
10
 
11
- var response = {
11
+ var responseMock = {
12
12
  "1.txt": "1st request",
13
13
  "2.txt": "2nd request",
14
14
  "3.txt": "3rd request",
@@ -16,15 +16,21 @@
16
16
  "5.txt": "5th request"
17
17
  };
18
18
  setTimeout(() => {
19
- callback(response[url]);
19
+ callback(responseMock[url]);
20
20
  }, time);
21
21
  }
22
22
 
23
23
  function getFile(url){
24
24
  fakeAjax(url, function(response){
25
-
25
+ //
26
26
  });
27
27
  }
28
+
29
+ getFile("1.txt");
30
+ getFile("2.txt");
31
+ getFile("3.txt");
32
+ getFile("4.txt");
33
+ getFile("5.txt");
28
34
  ```
29
35
 
30
36
  # 期待するログ出力の結果(console.log)

1

細く

2017/11/19 11:21

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,6 @@
1
1
  以下のコードを用いてライブラリやPromiseなどを使わずに、5つのurlに対して次々にほぼ同時にリクエストを送って、「1.txt、2.txt、3.txt、4.txt、5.txt」と指定した順番にレスポンス結果を出力し、最後に「all done!」と出力する為には、みなさんならどのような書き方をしますか?
2
2
 
3
- 注意点としては、1つの目のリクエストのレスポンスを受けた後に、次のリクエストを送るといった順列処理ではなく、最初に5つのリクエストをほぼ同時に行って、指定の順序でレスポンスを出力するというところです。また、以下に掲載するコードを使ってください。(どうしても使いたくない場合は、それはそれでOKとします。。。)
3
+ 注意点としては、1つの目のリクエストのレスポンスを受けた後に、次のリクエストを送るといった順列処理ではなく、最初に5つのリクエストをほぼ同時に行って、指定の順序でレスポンスを出力するというところです。また、以下に掲載するコードを使ってください。(どうしても使いたくない場合は、それはそれでOKとします。。。)また、前述の通り、ライブラリやPromiseなどを使うのはNGとします。
4
4
 
5
5
  尚、自分も後で自分なりのやり方を投稿しますが、やり方を教えて欲しいといった類の質問ではなく、どういったやり方をみなさんがされるかに興味があるため、「コードを載せてください」といった趣旨に沿わないコメントは不要です。
6
6