我有一个回调函数,在其中需要返回true或false以触发一些外部操作,我需要在这个回调函数中进行API调用,因此我需要获取状态并在回调函数内分发某些操作,但我不知道是否可以使用eventChannel,因为这个回调函数可能不是一个生成器函数,而只是一个普通的函数。我需要像这样做。
zafClient.on('ticket.save', () => {
const state = yield select();
yield put(actionWithApiCall())
// I need to wait for the action to finish and then return something
// based on the response from the API
// I know how to block the saga to wait for the action dispatched
// the problem is that I can't use yield here
return somethingfromthestore;
});
顺便提一下,这是Zendesk API。
yield take(MY_API_ACTION)
然后yield select()
在新的 Saga 中从 store 获取数据。 - David Bradshaw