javascript - masalah pesanan pelaksanaan fungsi js, jika fungsi itu diberikan kepada pembolehubah, adakah ia dilaksanakan?
给我你的怀抱
给我你的怀抱 2017-05-19 10:07:46
0
2
593

Kenapa saya tidak boleh menulisnya seperti ini? A yang dikembalikan tidak ditentukan Secara logiknya, kod tersebut dilaksanakan secara berurutan. Hantar semula tidak akan dilaksanakan sehingga s mempunyai nilai

Apa yang sepatutnya res.send(s)还是res.send(s())?
Jika anda menetapkan fungsi kepada pembolehubah, adakah pembolehubah itu akan dilaksanakan apabila ia diisytiharkan?

Iaitu, apabila kod berikut mengisytiharkan s, adakah s akan dilaksanakan?

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

Cara penulisan berikut adalah baik

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

membalas semua(2)
我想大声告诉你

Ada masalah dengan kod yang anda berikan tetapi ia mungkin kerana hasilnya tidak dikembalikan apabila utils.Test是一个异步执行的函数吧,所以你第一种写法在执行res.json(s) Jika anda meletakkannya dalam fungsi panggil balik dan melaksanakannya, tidak akan ada masalah.

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())
})

Di manakah kod ini mengisytiharkan bahawa s ialah fungsi? Apakah yang memberi anda keyakinan untuk menegaskan bahawa s mesti menjadi fungsi dan panggilan s dengan sepenuh hati anda?

Jika anda menetapkan fungsi kepada pembolehubah, adakah pembolehubah itu akan dilaksanakan apabila ia diisytiharkan?

Anda tidak menetapkan fungsi kepada pembolehubah Anda menyerahkan fungsi tersebut kepada fungsi yang dipanggil utils.Uji sebagai parameter pertama, dan kemudian memberikan nilai pulangan kepada pembolehubah.

Apakah yang anda maksudkan dengan s? Kemudian anda perlu bertanya kepada utils.Test, sayang, siapa tahu apa utils.Test buat, siapa tahu apa fungsi yang anda luluskan telah alami dalam utils.Test.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan