質問編集履歴

1

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

2018/12/14 17:26

投稿

rebel_nit
rebel_nit

スコア13

test CHANGED
File without changes
test CHANGED
@@ -283,3 +283,77 @@
283
283
  module.exports = router;
284
284
 
285
285
  ```
286
+
287
+ ###追記
288
+
289
+ 1.staticなメソッドをasyncさせる方法はないのでしょうか?
290
+
291
+ 2.以下のvalidateRegisterUsersData()のようなPromiseチェーンを組むときに3変数になってしまうのですが、isFilledUsernameの引数をusernameだけにしてもPromiseチェーンは組めるのでしょうか?
292
+
293
+ 3.以下の2点を守ってコードを書き換える際に、Promiseチェーンを組むときは以下のような形になると思ったのですが、間違ってますか?
294
+
295
+ - ejsにエラー情報を渡したいので、errorsの中にエラーを格納したい。
296
+
297
+ - クラスを崩して、すべてのメソッドをモジュールとしてexportsするのは避けたいので、Authenticatorクラスの関数として実装したい。
298
+
299
+
300
+
301
+
302
+
303
+
304
+
305
+ ```js
306
+
307
+ static validateRegistUsersData(body) {
308
+
309
+ console.log("validateRegistUsersData");
310
+
311
+ var isValidated = true, errors = {};
312
+
313
+ Promise.resolve(body.username, isValidated, errors)
314
+
315
+ .then(this.__isFilledUsername)
316
+
317
+ .then((results) => new Promise((resolve, reject) => {
318
+
319
+ resolve(results.isValidated);
320
+
321
+ }));
322
+
323
+ }
324
+
325
+
326
+
327
+
328
+
329
+ // __isFilledUsername = username, isValidated, errors => new Promise() だとエラー
330
+
331
+ __isFilledUsername(username, isValidated, errors) {
332
+
333
+ console("__isFilledUsername");
334
+
335
+ new Promise((resolve, reject) => {
336
+
337
+ console.log(username);
338
+
339
+ resolve({ isValidated, errors });
340
+
341
+ });
342
+
343
+ }
344
+
345
+
346
+
347
+ static __isFilledPassword(password, isValidated, errors) {
348
+
349
+ new Promise((resolve, reject) => {
350
+
351
+ isValidated = false;
352
+
353
+ errors.password = "passwordが未入力です。";
354
+
355
+ });
356
+
357
+ }
358
+
359
+ ```