2017-01-19 34 views
0

我有這樣的代碼:更好的方式來寫這個合成值

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

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

但我不知道該怎麼做的更好。我試過。:

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

但是不行。

我該如何改進此腳本?

+0

這種方法loadOnMount返回一個承諾? –

回答

1

這是compose函數來自Redux嗎?

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

是的。謝謝!我忘記使用咖喱 –

0

如果你寫的這個方法返回一個承諾,他們可以使用Promise.all撰寫所有。見例如:

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

然後你就可以撰寫這樣的:

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

在這種情況下,我需要從上一個函數中獲取值。 –

相關問題