请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

一个promise问题

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

正在回答 回答被采纳积分+3

3回答

提问者 qq_那些荒废流年 2019-04-20 14:06:13

https://img1.sycdn.imooc.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 14:27:25
提问者 qq_那些荒废流年 2019-04-19 20:36:48

https://img1.sycdn.imooc.com//szimg/5cb9bf960001995406530483.jpg


https://img1.sycdn.imooc.com//szimg/5cb9c04f0001f73c07050513.jpghttps://img1.sycdn.imooc.com//szimg/5cb9c013000158ea06670208.jpg

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

0 回复 有任何疑惑可以回复我~
  • 双越 #1
    promise 的链式调用,then 中的函数,必须有返回值的,否则下一个 then 接收的值就是 undefined ,这是 promise 的标准。
    回复 有任何疑惑可以回复我~ 2019-04-19 22:01:13
双越 2019-04-19 18:28:25

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

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信