Vuex: делает отправку возвращает обещание, так что вы можете связать их между собой?


Vuex: делает отправку возвращает обещание, так что вы можете связать их между собой?

21.10.2020 11:26:46 Просмотров 13 Источник

Я еще не кодирую свое приложение, поэтому не могу его протестировать, но если бы я хотел связать депеши по цепочке, можно ли было бы заставить мои депеши работать синхронно?

пример:

this.$store.dispatch('doSomething', {
    'url': '/admin/do-something',
    'user_id': userId,
})
.then(response => {
    this.$store.dispatch('doSomething2', {
       'url': '/admin/do-something-2',
       'user_id': userId,
    })
})
У вопроса есть решение - Посмотреть?

Ответы - Vuex: делает отправку возвращает обещание, так что вы можете связать их между собой? / Vuex: Does dispatch return a promise so that you can chain them?

Является ответом!
Derek Pollard

21.10.2020 11:30:46

Ответ

Согласно документации vuex:

отправка

отправка(тип: строка, полезной нагрузки?: любой, варианты?: Объект): обещание<любое>
отправка (действие: объект, параметры?: Объект): обещание<любое>

Это означает, что dispatch всегда будет возвращать Promise, так что, теоретически, да, вы можете связать депеши в цепочку, чтобы обеспечить определенный заказ

Дополнительный

Идя дальше, если эти действия всегда должны происходить в таком порядке, подумайте о том, чтобы сделать одно действие, которое будет отправлять каждое из них индивидуально для вас:

someVuexModule.js

...
export const actions = {
  async doSomethingMaster({ dispatch }) {
    await dispatch('doSomething');
    await dispatch('doSomething2');
    await dispatch('doSomething3');
    
  },
  doSomething() {},
  doSomething2() {},
  doSomething3() {},
}

...
Помочь в развитии проекта:
Закрыть X