跳到主要内容
CNode

res.render 为什么在传参前就先执行了?

问答
OOwisky发布于 8 年前最后回复 8 年前
229940

在路由模块里,分别执行了几个函数,console.log 之后发现res.render 方法中并没有获取到 res.locals 中 A B C 的值,但 ABC计算结果在控制台是由输出的…… 所以这是 res.render 是抢先在 fa fb fc 之前就执行了么? 有什么解决方法呢? 含泪感谢~

router.get('/main', function(req,res){
dosth //语句1:从 session中赋值给 变量 a,b,c
fa(a); //调用函数fa,传入参数a,并将计算结果A 传给 res.locals.A
fb(b); //调用函数fa,传入参数b,并将计算结果B 传给 res.locals.B
fc(c); //调用函数fa,传入参数c,并将计算结果C 传给 res.locals.C
res.render('mian')  //渲染模板 main(利用res.locals 中 A B C 的值)
});


查看回复

回复 (2)

F
flamingtop#28 年前

fa, fb, fc 内部对A, B, C等的操作是异步的么?

O
Owisky#18 年前

目前用的 async waterfall…… 还有其他优雅的办法么?

参与回复

登录后即可参与回复。登录