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 ?
给我你的怀抱
给我你的怀抱 2017-05-19 10:07:46
0
2
581

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)
    })
}
给我你的怀抱
给我你的怀抱

répondre à tous(2)
我想大声告诉你

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.

Ty80
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.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal