Heim > Fragen und Antworten > Hauptteil
Dies ist jetzt der Fall. Funktion a ist ein Versprechen, das Daten asynchron zurückgibt. Jetzt muss ich a().then() so für jede Funktion verarbeiten, die auf diesen Daten basiert
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) => {...})
}
Es gibt einige rekursive zyklische Abhängigkeiten. Wenn die Komplexität zunimmt, habe ich das Gefühl, verrückt zu werden. Gibt es eine andere bessere Möglichkeit, es zu schreiben? 高洛峰2017-07-05 11:07:24
可以用点函数式编程的写法:
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)