Я хочу сделать ряд действий по отправке, прежде чем идти на рабочий стол.
Я чувствовал, что обещания могут быть правильным подходом для этого, но, используя следующий код, мы спускаем код и меняем экран ДО того, как мы выполнили каждую из функций (autoLogin, билеты, контакты, оповещения, партнеры). Как я могу убедиться, что я завершил эти 5 до последней команды resetNavigation?
Promise.resolve ( this.store.dispatch(autoLogin()) )
.then(function (response) {
store.dispatch(tickets());
})
.then(function (response) {
store.dispatch(contacts());
})
.then(function (response) {
store.dispatch(alerts());
})
.then(function (response) {
store.dispatch(partners());
})
.then(function (response) {
this.resetNavigation('HomeScreen');
})
Вы можете отправить действие для повторного перемещения внутри метода shouldComponentUpdate(), действие которого влияет на действия партнеров в ваших компонентах. Чтобы привести пример:
class ComponentEffectedByPartnerAction {
shouldComponentUpdate(){
this.resetNavigation('HomeScreen');
}
}
И удалите последний шаг вашего обещания
Promise.resolve ( this.store.dispatch(autoLogin()) )
.then(function (response) {
store.dispatch(tickets());
})
.then(function (response) {
store.dispatch(contacts());
})
.then(function (response) {
store.dispatch(alerts());
})
.then(function (response) {
store.dispatch(partners());
})
.then(function (response) {
console.log("last chance")
//this.resetNavigation('HomeScreen');
})
tickets()
обычными редукционными диспетчерами, или они асинхронные функции, как thunks?