Maison  >  Questions et réponses  >  le corps du texte

javascript - Problème d'ordre d'exécution de la fonction js, si la fonction est affectée à une variable, est-elle exécutée ?

Pourquoi ne puis-je pas l'écrire comme ça ? Le a renvoyé n'est pas défini Logiquement parlant, le code est exécuté séquentiellement. Res.send ne sera exécuté que lorsque s aura une valeur

.

Que devrait res.send(s)还是res.send(s()) être ?
Si vous assignez une fonction à une variable, la variable sera-t-elle exécutée lorsqu'elle sera déclarée ?

Autrement dit, lorsque le code suivant déclare s, s sera-t-il exécuté ?

app.use("/test2",function(req,res,next){
   var s=utils.Test(function(value){
    console.log("value",value)
    console.log("!!!")
    return value
   
   })
   res.json(s())
})

La manière d'écrire suivante convient

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)
    })
}
给我你的怀抱给我你的怀抱2711 Il y a quelques jours534

répondre à tous(2)je répondrai

  • 我想大声告诉你

    我想大声告诉你2017-05-19 10:09:46

    Y a-t-il un problème avec le code que vous avez donné ? Mais c'est probablement parce que le résultat n'a pas été renvoyé lorsque utils.Test是一个异步执行的函数吧,所以你第一种写法在执行res.json(s) Si vous le mettez dans la fonction de rappel et l'exécutez, il n'y aura pas de problème.

    répondre
    0
  • PHP中文网

    PHP中文网2017-05-19 10:09:46

    app.use("/test2",function(req,res,next){
       var s=utils.Test(function(value){
        console.log("value",value)
        console.log("!!!")
        return value
       
       })
       res.json(s())
    })

    Où ce code déclare-t-il que s est une fonction ? Qu'est-ce qui vous donne la confiance nécessaire pour insister sur le fait que les s doivent être une fonction et appeler les s de tout votre cœur ?

    Si une fonction est assignée à une variable, la variable sera-t-elle exécutée lors de sa déclaration ?

    Vous n'avez pas attribué de fonction à une variable. Vous avez transmis la fonction à une fonction appelée utils.Test comme premier paramètre, puis avez donné la valeur de retour à la variable.

    Qu'entends-tu par s ? Ensuite, vous devez demander à utils.Test, mon cher, qui sait ce que fait utils.Test, qui sait ce que la fonction que vous avez transmise a vécu dans utils.Test.

    répondre
    0
  • Annulerrépondre