javascript - Existe-t-il une fonction A qui obtient des données de manière asynchrone? Les autres fonctions qui dépendent des données obtenues par A doivent-elles être asynchrones?
黄舟
黄舟 2017-07-05 11:05:24
0
3
967

C'est le cas maintenant. La fonction a est une promesse qui renvoie des données de manière asynchrone. De nombreuses autres fonctions doivent utiliser ces données. Maintenant, je dois gérer a().then() comme ceci pour chaque fonction qui repose sur ces données

.
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) => {...})
}

Il existe des dépendances cycliques récursives. Lorsque la complexité augmente, j'ai l'impression de devenir fou. Existe-t-il une autre meilleure façon de l'écrire ?

黄舟
黄舟

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

répondre à tous(3)
小葫芦

Vous pouvez utiliser la programmation fonctionnelle pour écrire :

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

Essayez async/await d'ES7 ?
Ou introduisez la bibliothèque async.js, qui est commune aux front-ends et aux back-ends.

迷茫

Si les exigences de temps réel et d'indépendance sont très élevées, il ne semble y avoir aucune solution... Sinon, vous pouvez essayer de mettre en cache un... et voir ce que disent les autres

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal