Rumah  >  Soal Jawab  >  teks badan

javascript - masalah pesanan pelaksanaan fungsi js, jika fungsi itu diberikan kepada pembolehubah, adakah ia dilaksanakan?

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

membalas semua(2)saya akan balas

  • 我想大声告诉你

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

    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.

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

    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.

    balas
    0
  • Batalbalas