回答編集履歴
4
訂正
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
間違って回答欄に書いてしまいました。今さら削除依頼するのも何なので回答として書き直しました。検証してないのでハズレだったらすみません。
|
1
|
+
間違って回答欄に書いてしまいました。今さら削除依頼するのも何なので回答として書き直しました。 ~~検証してないのでハズレだったらすみません。~~ 検証しました。下の追記を見てください。
|
2
2
|
|
3
3
|
エラーメッセージでググってヒットした最初の記事 (url 下記) によると、async /
|
4
4
|
await をペアで使わないとそうなるそうです。
|
3
追記
test
CHANGED
@@ -9,3 +9,54 @@
|
|
9
9
|
質問のコードでは関数に async を付与したが、関数内では await を使ってないのが問題のようです。
|
10
10
|
|
11
11
|
関数の内部で await を使うように関数内の構文を書き直すか、今のままのコードから async / await を削除したらどうなりますか?
|
12
|
+
|
13
|
+
---
|
14
|
+
|
15
|
+
**【追記】**
|
16
|
+
|
17
|
+
上に「関数の内部で await を使うように関数内の構文を書き直すか、今のままのコードから async / await を削除したらどうなりますか?」と書きましたが、それを検証してみました。
|
18
|
+
|
19
|
+
以下のコードの getData() が「async / await を削除」、getData2() が「関数の内部で await を使うように関数内の構文を書き直す」です。
|
20
|
+
|
21
|
+
```
|
22
|
+
<script type="text/javascript">
|
23
|
+
function getData() {
|
24
|
+
fetch("handler2.ashx", {
|
25
|
+
method: "POST"
|
26
|
+
})
|
27
|
+
.then(response => response.json())
|
28
|
+
.then(data => console.log(data))
|
29
|
+
}
|
30
|
+
|
31
|
+
async function getData2() {
|
32
|
+
const response = await fetch("handler2.ashx", { method: "POST" });
|
33
|
+
const data = await response.json();
|
34
|
+
console.log(data);
|
35
|
+
}
|
36
|
+
|
37
|
+
window.onload = async function () { getData(); await getData2(); }
|
38
|
+
</script>
|
39
|
+
```
|
40
|
+
|
41
|
+
例えば fetch で要求すると戻ってくる JSON 文字列が以下の場合、
|
42
|
+
|
43
|
+
```
|
44
|
+
[
|
45
|
+
{
|
46
|
+
"id": 1,
|
47
|
+
"name": "aaa"
|
48
|
+
},
|
49
|
+
{
|
50
|
+
"id": 2,
|
51
|
+
"name": "bbb"
|
52
|
+
},
|
53
|
+
{
|
54
|
+
"id": 3,
|
55
|
+
"name": "ccc"
|
56
|
+
}
|
57
|
+
]
|
58
|
+
```
|
59
|
+
|
60
|
+
上のスクリプトの実行結果は以下の画像のようになります。
|
61
|
+
|
62
|
+

|
2
訂正
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
間違って回答欄に書いてしまいました。
|
1
|
+
間違って回答欄に書いてしまいました。今さら削除依頼するのも何なので回答として書き直しました。検証してないのでハズレだったらすみません。
|
2
2
|
|
3
3
|
エラーメッセージでググってヒットした最初の記事 (url 下記) によると、async /
|
4
4
|
await をペアで使わないとそうなるそうです。
|
@@ -7,3 +7,5 @@
|
|
7
7
|
https://bobbyhadz.com/blog/node-await-is-only-valid-in-async-function#:~:text=The%20error%20%22await%20is%20only,directly%20enclosing%20function%20as%20async%20.
|
8
8
|
|
9
9
|
質問のコードでは関数に async を付与したが、関数内では await を使ってないのが問題のようです。
|
10
|
+
|
11
|
+
関数の内部で await を使うように関数内の構文を書き直すか、今のままのコードから async / await を削除したらどうなりますか?
|
1
訂正
test
CHANGED
@@ -1 +1,9 @@
|
|
1
|
+
間違って回答欄に書いてしまいました。
|
2
|
+
|
3
|
+
エラーメッセージでググってヒットした最初の記事 (url 下記) によると、async /
|
4
|
+
await をペアで使わないとそうなるそうです。
|
5
|
+
|
6
|
+
Fix - Await is only valid in async function Error in NodeJS
|
7
|
+
https://bobbyhadz.com/blog/node-await-is-only-valid-in-async-function#:~:text=The%20error%20%22await%20is%20only,directly%20enclosing%20function%20as%20async%20.
|
8
|
+
|
1
|
-
|
9
|
+
質問のコードでは関数に async を付与したが、関数内では await を使ってないのが問題のようです。
|