javascript - Terdapat fungsi A yang memperoleh data secara tidak segerak Adakah fungsi lain yang bergantung kepada data yang diperolehi oleh A mesti tidak segerak?
黄舟
黄舟 2017-07-05 11:05:24
0
3
962

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.

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

membalas semua(3)
小葫芦

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)
女神的闺蜜爱上我

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

迷茫

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

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