【发布时间】:2017-08-28 12:58:56
【问题描述】:
我正在尝试找出有关 redux reducer 的一些信息,但我认为术语可能会有所不同,因为这是 JavaScript。
假设如下reducer:
import {
ONE,
TWO,
THREE
} from "../actions/types";
export default function reducer(state = { /* some init state here */ }, action) {
switch (action.type) {
case ONE: {
// this case takes 500ms to finish
return {...state }
}
case TWO: {
// this case takes 200ms to finish
return {...state }
}
case THREE: {
// this case takes 100ms to finish
return {...state }
}
default: {
return {...state }
}
};
如果我从一个动作中做了以下:
dispatch({type: ONE});
dispatch({type: TWO});
dispatch({type: THREE});
他们能保证按这个顺序解决吗?意思是,状态是否同步和“单线程”?或者case TWO: {} 会在case ONE: {} 完成之前触发吗?
【问题讨论】:
-
我推测这将以同步方式发生,因为您没有做出任何承诺或任何事情来暂停其处理程序中的操作。提供的代码中没有任何内容向我暗示他们会乱序完成。有兴趣看看是否有人对此进行实际测试。
标签: reactjs synchronization redux react-redux redux-thunk