1.dispatch发起action请求
dispatch({
type: 'rule/fetch',
payload: values,
});
2.找到对应的方法
*fetch({ payload }, { call, put }) {
yield put({
type: 'changeLoading',
payload: true,
});
const response = yield call(queryRule, payload);
yield put({
type: 'save',
payload: response,
});
yield put({
type: 'changeLoading',
payload: false,
});
},
疑惑上面的*fetch函数不是遇到yield就停止执行吗?那后面三个yield是什么时候触发的?
理论上是这样的。
但其实 yield 也可以实现自动执行。
具体的可以看 co 的源代码,Async/Await 的基石之作。
https://github.com/tj/co