Rumah  >  Soal Jawab  >  teks badan

javascript - Terdapat fungsi A yang memperoleh data secara tidak segerak Adakah fungsi lain yang bergantung kepada data yang diperolehi oleh A mesti tidak segerak?

Inilah keadaannya sekarang. Fungsi a ialah Janji yang mengembalikan data secara tidak segerak. Sekarang saya perlu mengendalikan a().then() seperti ini untuk setiap fungsi yang bergantung pada data ini

function a() {   
    return new Promise((resolve, reject) => {
    ....
    })
}

function getsub(id) {   
    return a()
    .then((data) => {
        return .....
    })
    .catch((err) => {...})
}


function tree(id) {   
    return a()
    .then((data) => {
        return .....
    })
    .catch((err) => {...})
}

Terdapat beberapa kebergantungan kitaran rekursif Apabila kerumitan meningkat, saya berasa seperti menjadi gila.

黄舟黄舟2663 hari yang lalu908

membalas semua(3)saya akan balas

  • 高洛峰

    高洛峰2017-07-05 11:07:24

    Anda boleh menggunakan pengaturcaraan berfungsi untuk menulis:

    function mapData(call) {
        return () => a()
        .then((data) => call(data))
        .catch((err) => call(null, err))
    }
    
    function sub(data, err) { ... }
    function sub2(data, err) { ... }
    function sub3(data, err) { ... }
    
    const getsub = mapData(sub)
    const getsub2 = mapData(sub2)
    const getsub3 = mapData(sub3)

    balas
    0
  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-07-05 11:07:24

    Cuba async/tunggu ES7?
    Atau perkenalkan pustaka async.js, yang biasa digunakan untuk kedua-dua hujung depan dan belakang.

    balas
    0
  • 迷茫

    迷茫2017-07-05 11:07:24

    Jika keperluan masa nyata dan kebebasan sangat tinggi, nampaknya tiada penyelesaian... Jika tidak, anda boleh cuba caching a... dan lihat apa yang orang lain katakan

    balas
    0
  • Batalbalas