【发布时间】:2016-08-15 22:00:21
【问题描述】:
我正在从 here 学习 react redux 但不了解这部分:
var asyncSayActionCreator_0 = function (message) {
setTimeout(function () {
return {
type: 'SAY',
message
}
}, 2000)
}
但是我们的动作创建者不会返回一个动作,它会 返回“未定义”。所以这不是我们正在寻找的解决方案 为。
为什么这不起作用?我认为 setTimeout 返回超时的 ID,而不是未定义的。
【问题讨论】:
-
如果你这样做了
return setTimeout(...。如果没有命中return语句,则函数返回undefined。 -
所以如果我使用
return,整个事情都会起作用? -
不,不会。它会返回一个 ID,但你永远不会得到
setTimeout回调的返回值。这意味着,您永远无法访问{ type: 'SAY', message }对象。 -
深渊。没有什么可以引用它。
-
您可以使用Redux Thunk middleware 进行异步操作。
标签: javascript reactjs settimeout redux react-redux