質問するログイン新規登録

質問編集履歴

1

Promiseに関する質問をする際に、コードを載せたかったため。

2018/12/14 17:26

投稿

rebel_nit
rebel_nit

スコア13

title CHANGED
File without changes
body CHANGED
@@ -140,4 +140,41 @@
140
140
 
141
141
 
142
142
  module.exports = router;
143
+ ```
144
+ ###追記
145
+ 1.staticなメソッドをasyncさせる方法はないのでしょうか?
146
+ 2.以下のvalidateRegisterUsersData()のようなPromiseチェーンを組むときに3変数になってしまうのですが、isFilledUsernameの引数をusernameだけにしてもPromiseチェーンは組めるのでしょうか?
147
+ 3.以下の2点を守ってコードを書き換える際に、Promiseチェーンを組むときは以下のような形になると思ったのですが、間違ってますか?
148
+ - ejsにエラー情報を渡したいので、errorsの中にエラーを格納したい。
149
+ - クラスを崩して、すべてのメソッドをモジュールとしてexportsするのは避けたいので、Authenticatorクラスの関数として実装したい。
150
+
151
+
152
+
153
+ ```js
154
+ static validateRegistUsersData(body) {
155
+ console.log("validateRegistUsersData");
156
+ var isValidated = true, errors = {};
157
+ Promise.resolve(body.username, isValidated, errors)
158
+ .then(this.__isFilledUsername)
159
+ .then((results) => new Promise((resolve, reject) => {
160
+ resolve(results.isValidated);
161
+ }));
162
+ }
163
+
164
+
165
+ // __isFilledUsername = username, isValidated, errors => new Promise() だとエラー
166
+ __isFilledUsername(username, isValidated, errors) {
167
+ console("__isFilledUsername");
168
+ new Promise((resolve, reject) => {
169
+ console.log(username);
170
+ resolve({ isValidated, errors });
171
+ });
172
+ }
173
+
174
+ static __isFilledPassword(password, isValidated, errors) {
175
+ new Promise((resolve, reject) => {
176
+ isValidated = false;
177
+ errors.password = "passwordが未入力です。";
178
+ });
179
+ }
143
180
  ```