質問編集履歴
1
Promiseに関する質問をする際に、コードを載せたかったため。
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
|
+
```
|