2017-01-19 3 views
0

Ich habe diesen Code .:bessere Möglichkeit, diesen zusammengesetzten Wert zu schreiben

const OnLoadStatisticsTypes = loadOnMount('statisticsTypes', fetchStatisticsTypes, 'root')(StatisticBalloons) 

export default loadOnMount('appsStatistics', fetchAppsStatistics, 'root')(OnLoadStatisticsTypes) 

Aber ich weiß nicht, wie es besser zu machen. Ich probierte:

export default compose(
    loadOnMount('appsStatistics', fetchAppsStatistics, 'root'), 
    loadOnMount('statisticsTypes', fetchStatisticsTypes, 'root'), 
    StatisticBalloons 
) 

Aber funktioniert nicht auch.

Wie kann ich dieses Skript verbessern?

+0

Diese Methode loadOnMount ein Versprechen zurückgibt? –

Antwort

1

Funktioniert diese compose Funktion von Redux?

export default compose(
    loadOnMount('appsStatistics', fetchAppsStatistics, 'root'), 
    loadOnMount('statisticsTypes', fetchStatisticsTypes, 'root') 
)(StatisticBalloons) 
+0

Ja. Vielen Dank! Ich habe vergessen, Curry zu verwenden –

0

Wenn Sie diese Methode zurückkehr ein Versprechen zu schreiben, können sie Sie komponieren alle Promise.all verwenden. Siehe Beispiel:

const loadOnMount = (param1, param2, param3) => { 
    return new Promise((resolve, reject) => { 
    //Your logical here 
    }) 
} 

Dann können Sie wie folgt zusammensetzen:

Promise.all([ 
    loadOnMount('appsStatistics', fetchAppsStatistics, 'root'), 
    loadOnMount('appsStatistics2', fetchAppsStatistics, 'root'), 
    loadOnMount('appsStatistics3', fetchAppsStatistics, 'root') 
]) 
.then(function(result){ 
    //Handle the array with all resolved promises 
}) 
+0

In diesem Fall muss ich den Wert von der vorherigen Funktion abrufen. –

Verwandte Themen