React / Redux почему не запускаются громоотводы в том порядке, в котором они называются - PullRequest
0 голосов
/ 28 января 2020

Почему FILTER_STUFF срабатывает перед STUFF_LOADED, когда load () вызывается перед filter () в компоненте? по какой-то причине порядок, в котором я вижу происходящее, это this.props.filter (n); перед this.props.load (i); в компоненте.

компонент:

showThings (a, b, i, n) {
  if (a !== b) {
    this.props.load(i);
  }
  this.props.filter(n);
}

действия:

export function filter (n) {
  return {
    type: FILTER_STUFF,
    n: n
  };
};


export function jobsLoaded (jobs) {
  return {
    type: STUFF_LOADED,
    payload: jobs
  };
}

export const load = (i) => async dispatch => {
  let jobs=functionToGetJobs();
  dispatch(jobsLoaded({ items: jobs }));
};

редуктор:

export const jobs = (state = defaultJobs, action) => {
  switch (action.type) {
    case STUFF_LOADED:
      let filterLists = getFilterList(action);
      return filterLists;
    case FILTER_STUFF:
      filterLists = filterAllJobs(state, action.n);
      return filterLists;
    default:
      return state;
  }
};

1 Ответ

0 голосов
/ 28 января 2020

Поскольку функция async каждый раз возвращает Promise, функция syn c отправляет быстрее, чем async one Asyn c функции

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...