Rumah > Soal Jawab > teks badan
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. 高洛峰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)
女神的闺蜜爱上我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.
迷茫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