鍍金池/ 問答/HTML/ ant design + dva 中yield的使用疑問

ant design + dva 中yield的使用疑問

1.dispatch發(fā)起action請求

dispatch({
  type: 'rule/fetch',
  payload: values,
});

2.找到對應(yīng)的方法

*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函數(shù)不是遇到y(tǒng)ield就停止執(zhí)行嗎?那后面三個(gè)yield是什么時(shí)候觸發(fā)的?

回答
編輯回答
陪妳哭

redux-saga幫你做了。
執(zhí)行完第一個(gè)yield后,會(huì)自動(dòng)執(zhí)行第二個(gè)yield

另外呢,如果只有put呢,就不要寫到effects中了,寫到reducer就可以了

2018年4月8日 12:01
編輯回答
茍活

理論上是這樣的。

但其實(shí) yield 也可以實(shí)現(xiàn)自動(dòng)執(zhí)行。

具體的可以看 co 的源代碼,Async/Await 的基石之作。

https://github.com/tj/co

2018年1月22日 11:25
編輯回答
醉淸風(fēng)

這代碼是什么意思

2018年2月21日 17:26