回答編集履歴
4
ワーカーについて追記
test
CHANGED
@@ -11,3 +11,10 @@
|
|
11
11
|
};
|
12
12
|
```
|
13
13
|
|
14
|
+
----
|
15
|
+
|
16
|
+
`func1()` `func2()` `func3()` の本来の処理内容に非同期なものが一切ない場合、それらを同時に処理を進めるには複数のスレッドが必要になります。[ウェブワーカー](https://developer.mozilla.org/ja/docs/Web/API/Web_Workers_API/Using_web_workers)を使うことになります。
|
17
|
+
|
18
|
+
具体的な処理内容がわかれば、また別の方法もあるかもしれません。
|
19
|
+
|
20
|
+
|
3
.
test
CHANGED
@@ -4,7 +4,10 @@
|
|
4
4
|
|
5
5
|
```js
|
6
6
|
const func2 = () => {
|
7
|
-
|
7
|
+
return new Promise(resolve => setTimeout(() => {
|
8
|
+
console.log("func2()が実行されました。");
|
9
|
+
resolve();
|
10
|
+
}, 5000));
|
8
11
|
};
|
9
12
|
```
|
10
13
|
|
2
.
test
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
`func2()`をたとえば以下のように変更すると試すことができるかと思います。
|
4
4
|
|
5
5
|
```js
|
6
|
-
const func2 =
|
6
|
+
const func2 = () => {
|
7
7
|
return new Promise(resolve => setTimeout(resolve, 5000));
|
8
8
|
};
|
9
9
|
```
|
1
.
test
CHANGED
@@ -1,2 +1,10 @@
|
|
1
1
|
基本的には `Promise.all([func1(), func2(), func3()]);` でいいものですが、質問文の例だと `func2()` 実行中は他の処理がブロックされるので、質問文の例そのものでは期待通りに動かすことは不可能です。
|
2
2
|
|
3
|
+
`func2()`をたとえば以下のように変更すると試すことができるかと思います。
|
4
|
+
|
5
|
+
```js
|
6
|
+
const func2 = async () => {
|
7
|
+
return new Promise(resolve => setTimeout(resolve, 5000));
|
8
|
+
};
|
9
|
+
```
|
10
|
+
|