为了账号安全,请及时绑定邮箱和手机立即绑定

js函数执行顺序问题,将函数赋值给变量,是否执行?

js函数执行顺序问题,将函数赋值给变量,是否执行?

一只萌萌小番薯 2018-11-07 14:18:31
为什么这样写不行。返回的a是undefined,按道理代码是顺序执行的啊,s有值之后才会res.send啊到底是应该res.send(s)还是res.send(s())呢?如果把一个函数赋值给一个变量,那么这个变量在声明的时候执行么?就是下面代码声明s的时候s是否执行?app.use("/test2",function(req,res,next){   var s=utils.Test(function(value){    console.log("value",value)    console.log("!!!")     return value        })    res.json(s()) })下面这种写法就可以app.use("/test2",function(req,res,next){  utils.Test(function(value){     console.log("value",value)     console.log("!!!")       res.json(s)        })   })utils.Test()utils.Test=function(callback){     request("http://localhost:3000/test/1.json",(err,res,body)=>{        let result=JSON.parse(body)             console.log("result",result)        // console.log(typeof result)         callback(result)     }) }
查看完整描述

1 回答

?
四季花海

TA贡献1811条经验 获得超5个赞

你给的代码是不是有问题,不过大概是因为utils.Test是一个异步执行的函数吧,所以你第一种写法在执行res.json(s)的时候结果还没返回,你把他放在callback function里面执行就不会有这个问题。


查看完整回答
反对 回复 2018-12-15
  • 1 回答
  • 0 关注
  • 595 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号