回答編集履歴
1
文章を微調整
answer
CHANGED
@@ -1,8 +1,7 @@
|
|
1
|
-
thenのチェーンを正しく使いましょう。
|
2
|
-
then
|
1
|
+
thenに渡す関数の戻り値を使ってうまくハンドリングできます。
|
3
2
|
|
4
3
|
- 値を返す: 即刻Promise.resolve(戻り値)が実行されたものとして処理
|
5
|
-
- 例外を投げ
|
4
|
+
- 例外を投げる: 即刻Promise.reject(err)が実行されたものとして処理
|
6
5
|
- Promiseを返す: 戻り値のPromiseのresolve or rejectを待つ
|
7
6
|
|
8
7
|
defghi1977さんの書き方はpromise→promiseという感じでしたが、
|
@@ -23,9 +22,12 @@
|
|
23
22
|
)
|
24
23
|
```
|
25
24
|
|
25
|
+
`snapshor.val()`は同期処理ですが、ちゃんと動いているのが確認出来るはずです。
|
26
|
-
間に加工用関数やバリデーション用の関数を作っておくなど工夫する
|
26
|
+
間に加工用関数やバリデーション用の関数を作っておくなど工夫すると、
|
27
|
-
可読性を
|
27
|
+
可読性を高めたり、エラーになりそうな処理を予め弾くといった様々な事ができるようになります。
|
28
28
|
|
29
|
+
質問文のコードを処理を買えずに書き方を変えてみました。
|
30
|
+
|
29
31
|
```JavaScript
|
30
32
|
var connectTo = function(url) {
|
31
33
|
return firebase.database().ref(url).once('value');
|
@@ -48,5 +50,5 @@
|
|
48
50
|
```
|
49
51
|
|
50
52
|
こんな風に関数化しておけば最後の部分はシンプルに出来ますね。
|
51
|
-
関数化したものは別
|
53
|
+
関数化したものは別ファイルに追い出してしまってからimportで取ってくる設計に出来るので、
|
52
|
-
|
54
|
+
大規模な開発では意外と使えるテクニックだと思います。
|