Разрешить обещания React Native

1

Я хочу сделать ряд действий по отправке, прежде чем идти на рабочий стол.

Я чувствовал, что обещания могут быть правильным подходом для этого, но, используя следующий код, мы спускаем код и меняем экран ДО того, как мы выполнили каждую из функций (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');
 })
  • 0
    Вам нужно избыточное промежуточное программное обеспечение Thunk
  • 0
    Являются ли функции, подобные tickets() обычными редукционными диспетчерами, или они асинхронные функции, как thunks?
Показать ещё 2 комментария
Теги:
react-native

1 ответ

0

Вы можете отправить действие для повторного перемещения внутри метода 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');
 })

Ещё вопросы

Сообщество Overcoder
Наверх
Меню