一个promise问题

来源:7-14 session存入redis

qq_那些荒废流年

2019-04-19

图片描述
老师您好,之前写代码gitbash老是报错,说有一个值undefined,我找了半天没找到,最后才发现问题。要是不像您写的代码那样在函数的末尾return一个postData的话,要是像我这样写,在postData函数就取不到req.session的值。我有点不理解。req在函数中应该是个全局的对象呀,在哪里修改它里面的属性和方法在别的地方应该都可以访问到。为什么不进行链式调用就取不到它的值呢?

写回答

3回答

qq_那些荒废流年

提问者

2019-04-20

//img.mukewang.com/szimg/5cbab5f50001361d04830362.jpg

老师我的意思是我在这里可以不进行链式调用吗,因为我的理解的是req这个对象是全局的,所以req.session = data在哪里都能访问到。但是我如果不return postData(req) 的话,我再下面的那一行console.log(‘全局的‘+ ’req.session’)就打印不出来req.session了 我困惑的关键点就是req是一个全局对象那么在哪里对它的属性进行定义在其他地方都可以访问的到,但事实好像不是这样

0
1
双越
你的思路就是错误的,使用 Promise 不进行链式调用,那就失去了 Promise 的价值。做事情要符合行业标准,这种事情不需要创新。
2019-04-20
共1条回复

qq_那些荒废流年

提问者

2019-04-19

//img.mukewang.com/szimg/5cb9bf960001995406530483.jpg


//img.mukewang.com/szimg/5cb9c04f0001f73c07050513.jpg//img.mukewang.com/szimg/5cb9c013000158ea06670208.jpg

老师您可以对比着看一下,您写的时候return了getPostData,但是我没有。然后当第一次在login进行登录的时候一切都正常,第二次在login-test登录的时候就接收不到req.session的值了,我打印了一下是undefined。但是写成您那个样子就没有问题了,在哪里打印req.session都没有问题。老师能解答下我之前的问题吗?跟这个链式调用有关吗 还是我别的地方写的有问题

0
1
双越
promise 的链式调用,then 中的函数,必须有返回值的,否则下一个 then 接收的值就是 undefined ,这是 promise 的标准。
2019-04-19
共1条回复

双越

2019-04-19

没看懂问题,可以详细一些,例如:注释了哪一行代码,会导致哪一行报错,报错信息是什么。。。

0
1
qq_那些荒废流年
麻烦您看下回复
2019-04-19
共1条回复

Node.js+Express+Koa2+Nest.js 开发服务端

从入门到实战,一站式掌握 Node.js+Express+Koa2

4051 学习 · 2006 问题

查看课程