私はJSで約束を学び始めました。私は約束を使って私の既存のコールバックロジックを置き換えようとしています。私は新しい約束を返し、データベースインスタンスの約束を使ってデータを取得する関数を書いた。しかし、私はそれを正しくやっているかどうかはわかりません。ここで私はresolve
条件付きで使用でき、新しい約束を返す関数で別の約束を使うには?
usersService.js
var getUsers = function(queryObject) {
return new Promise(function(resolve, reject) {
dbConnection.find(queryObject)
.then(function(result) {
if (result.length > 0) {
resolve(result)
} else {
resolve(errorMessage.invalidUser())
}).catch(function(err) {
reject(err)
});
})
};
usersRouter.js
router.get('/users', function (req,res,next) {
var queryObject = { "userId":req.query.userId };
userService.getUsers(queryObject)
.then(function (data) { //some logic })
.catch(function (err) { //some logic });
});
- コードスニペットのですか?
- 答えがの場合、いいえ、正しいアプローチは何ですか?
- また、私は正しい方法で約束をルータで使用していますか?事前に
ありがとう!
あなたはタイプミスしている: ' – melpomene
@melpomeneは、それは一種の予期せぬ'決意(errorMessage.invalidUser()) 'のだ – PhaniMahesh
を' resovle(結果)を編集しました。おそらく 'reject(errorMessage.invalidUser())'をしたいと思うでしょう。 – Danosaure