promise then里面使用return的疑问?
//1
exports.login = function* (){
let data = {config};
let req = this.request.body;
let loginname = req.loginname;
let password = md5(req.password);
yield Promise.resolve()
.then(() => User.findOne({loginname: loginname}))
.then((user) => {
if(user && (password === user.password)){
this.session.loginname = loginname;
this.redirect('/');
}else{
data.errMsg = 'please check name & password';
return co(this.render('login', data));
}
});
};
//2
exports.userInfo = function* (){
let loginname = this.params.loginname;
let data = {
config,
user: this.session.user
};
yield Promise.resolve()
.then(() => User.findOne({loginname: loginname}))
.then((user) => {data.userintro = user;})
.then(() => co(this.render('user', data)))
};
这是使用koa编写的两端代码,为何同样是then里面写的函数,一个需要return,而另一个不需要return,也能渲染页面?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
当只有一条语句例如
() => co(this.render('user', data))
时,等价于当 ()=>{} {}内有多条语句,须加return
等价于