回答編集履歴

4

ワーカーについて追記

2024/10/01 04:53

投稿

int32_t
int32_t

スコア21559

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

.

2024/10/01 01:37

投稿

int32_t
int32_t

スコア21559

test CHANGED
@@ -4,7 +4,10 @@
4
4
 
5
5
  ```js
6
6
  const func2 = () => {
7
- return new Promise(resolve => setTimeout(resolve, 5000));
7
+ return new Promise(resolve => setTimeout(() => {
8
+ console.log("func2()が実行されました。");
9
+ resolve();
10
+ }, 5000));
8
11
  };
9
12
  ```
10
13
 

2

.

2024/10/01 01:35

投稿

int32_t
int32_t

スコア21559

test CHANGED
@@ -3,7 +3,7 @@
3
3
  `func2()`をたとえば以下のように変更すると試すことができるかと思います。
4
4
 
5
5
  ```js
6
- const func2 = async () => {
6
+ const func2 = () => {
7
7
  return new Promise(resolve => setTimeout(resolve, 5000));
8
8
  };
9
9
  ```

1

.

2024/10/01 01:34

投稿

int32_t
int32_t

スコア21559

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
+