callback res.end 记得return(Javascript需要养成的良好习惯)

错误示例:

app.get('do',function(req,res,next){
    getUserId(function(err,userId){
        if(err){
            res.end(err);//错误位置
        }
        getHeadPicByUserId(userId,function(){

        });
    });
});
var getHeadPicByUserId=function(userId,callback){
    if(typeof userId!=='number'){
        callback('用户名非法');//错误位置
    }
    var users=[];//用户信息
    if(users[userId]===undefined){
        callback('用户不存在');//错误位置
    }
    setTimeout(function(){
        callback(null,users[userId]);
    },1000);
}

代码中包含容易忽略的错误,错误位置已标出。

我们(例如我)很容易疏忽的就是:

1、调用callback函数作为结果返回,但忘记用callback执行完成后依然会执行后续的代码,以上代码callback没有返回,后面的代码在callback运行完后,依然会继续执行,不是我们想要的,请养成这样使用习惯:

return callback('用户名非法');

2、调用res.end()也是同理,我们在调用res.end的时候是对该response的结束,但并不是对代码的结束,请养成习惯:

return res.end(err);

结论:请记得对callback,res.end类似的代码正确理解,记得做善后:)

转载于:https://www.cnblogs.com/chianquan/p/5669882.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值