小编Oza*_*ürk的帖子

承诺地狱、反模式和错误处理

我是 node.js 环境的新手。我阅读了很多有关实现 Promise 并将它们链接在一起的资料。我试图避免反模式实现,但我不知道如何做到这一点。

系统中有一个用户注册流程。首先,我检查用户名。如果数据库中没有使用此用户名的用户,我将创建一个用户模型并将其保存到数据库中。

您能看到我的内联评论吗?

应用程序.js

RegisterUser("existUser","123").then(user=>{
    //send response, etc
}).catch(er => {
    console.log(er);
    //log error,send proper response, etc
    // Should I catch error here or inner scope where RegisterUser implemented ?
});
Run Code Online (Sandbox Code Playgroud)

用户服务.js

function RegisterUser(username, password) {
    return new Promise((resolve, reject) => {
        GetUser(username) 
            .then(user=>{
                if(user)reject(new Error("User Exists"));
                else{
                    resolve(SaveUser(username,password))// Is that ugly?
                                                        //what if I have one more repository logic here ?
                                                        //callback train... 
                }
            }) 
            .then(user => {
                resolve(user);//If I do not want to resolve …
Run Code Online (Sandbox Code Playgroud)

javascript node.js es6-promise

3
推荐指数
1
解决办法
4557
查看次数

标签 统计

es6-promise ×1

javascript ×1

node.js ×1