質問編集履歴

1

回答コードを記載しました

2019/05/07 09:41

投稿

TosuTosu
TosuTosu

スコア49

test CHANGED
File without changes
test CHANGED
@@ -39,3 +39,51 @@
39
39
  eachメソッドはPromiseオブジェクトを返すことはわかっているのですが、elementsに値が入るまで待つにはどのように修正したら良いでしょうか? いろいろ試してみたのですが、正しく動作しませんでした。
40
40
 
41
41
  情報不足などありましたら、適宜追記していきますので何卒よろしくお願いいたします。
42
+
43
+
44
+
45
+
46
+
47
+ # 回答を参考にした解決コード
48
+
49
+ ```Javascript
50
+
51
+ loadElements() {
52
+
53
+ // ①Promiseをreturn
54
+
55
+ return new Promise((resolve, reject) {
56
+
57
+ let elements = [];
58
+
59
+ this.db.elementsStore.each(ele => {
60
+
61
+ elements.push(new Element( ele.id, ...コンストラクター呼出し));
62
+
63
+ }).then( () => {
64
+
65
+ for (let i= 0 ; i < elements.length; i++) {
66
+
67
+ console.log(elements[i])
68
+
69
+ }
70
+
71
+ resolve(elements); // ② resolve関数呼出し
72
+
73
+ });
74
+
75
+ });
76
+
77
+ }
78
+
79
+
80
+
81
+ async getElements() {
82
+
83
+ // ③ awaitで同期待ち
84
+
85
+ const elements = await loadElements()
86
+
87
+ }
88
+
89
+ ```