【发布时间】:2018-07-09 10:54:57
【问题描述】:
考虑以下代码:
export function* listen(channel, event, action) {
yield call(
[LaravelEchoManager, LaravelEchoManager.registerListener],
channel,
event,
(data) => {
// yield data;
},
);
}
LaravelEchoManager.registerListener 方法为给定频道和给定事件注册一个事件监听器,并为收到的每条消息调用回调(data) => { ... }。
如何生成接收到的数据?
【问题讨论】:
-
你不能。只有
registerListener返回了一个生成器(我怀疑它确实如此),这才有可能。想一想:生成器将数据返回给它的调用者。但是你不是回调的调用者,其他一些代码是。 -
这对我来说很有意义。目前,我正在尝试使用 Promise 解决方法,其中解决方法存储在 Promise 解析器之外,以便我可以在回调中调用它们。
标签: ecmascript-6 generator redux-saga