質問編集履歴
2
追記しました
title
CHANGED
File without changes
|
body
CHANGED
@@ -14,4 +14,40 @@
|
|
14
14
|
temp = notes; // この処理を最初に実行したい!
|
15
15
|
});
|
16
16
|
console.log(JSON.stringify(temp)); // 実行結果: undefined
|
17
|
-
```
|
17
|
+
```
|
18
|
+
**■追記**
|
19
|
+
**以下の方法で解決できましたが、いまいち動作がわかりません。**
|
20
|
+
以下の理解で正しいでしょうか?
|
21
|
+
① 処理待ちしたい関数は Promise でリターンする。
|
22
|
+
② 処理待ちしたい関数の受けて側は await で Promise が resolve になるまで待つ。
|
23
|
+
③ awaitを持つ関数は宣言の前に await を宣言する。
|
24
|
+
|
25
|
+
以下今回のコードと実行結果になります。
|
26
|
+
いまいち挙動の理解ができていないので コードが不安であります。他に記述する方法や間違っている点があれば教えていただきたいです。よろしくお願いいたします。
|
27
|
+
|
28
|
+
**■コード**
|
29
|
+
```Javascript
|
30
|
+
function test() {
|
31
|
+
return new Promise(function(resolve, reject) {
|
32
|
+
evdDB.evdNoteStore
|
33
|
+
.toArray()
|
34
|
+
.then(function(notes) {
|
35
|
+
console.log(notes);
|
36
|
+
resolve(notes);
|
37
|
+
});
|
38
|
+
});
|
39
|
+
}
|
40
|
+
|
41
|
+
async function call() {
|
42
|
+
console.log("inner call start");
|
43
|
+
var result = await test();
|
44
|
+
console.log(JSON.stringify(result));
|
45
|
+
console.log("inner call end");
|
46
|
+
}
|
47
|
+
|
48
|
+
console.log("outer call start");
|
49
|
+
call()
|
50
|
+
console.log("outer call end");
|
51
|
+
```
|
52
|
+
**■実行結果**
|
53
|
+

|
1
タイトルを変更しました。
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
非同期処理を待ち、変数を代入したい(IndexDB, Dexie.js)
|
1
|
+
非同期処理を待ち、そこで得た値を変数を代入したい(IndexDB, Dexie.js)
|
body
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
非同期処理を待ち、変数を代入したいです。
|
1
|
+
**非同期処理を待ち、変数を代入したいです。**
|
2
2
|
仮のテストコードを書いて実行しているのですが、非同期処理のところで詰まっています。
|
3
3
|
|
4
4
|
コードの内容はデータベースからレコードを取得する関数です。IndexDBのラッパーDexie.jsを利用しています。
|