【发布时间】:2016-11-29 18:01:30
【问题描述】:
我有一个 promise 数组,我正在尝试将新的 promise 推送到另一个 dispatch.then 函数内的那个数组中,但看起来数组总是超出范围
load(params, auth) {
return dispatch => {
const { passage, versions, language_tag } = params
let promises = []
versions.forEach((id) => {
// get the version info, and then pass it along
dispatch(ActionCreators.version({ id: id })).bind(promises).then((version) => {
promises.push(dispatch(ActionCreators.passages({
id: id,
references: [passage],
versionInfo: {
local_abbreviation: version.abbreviation,
local_title: version.title,
id: version.id,
},
})))
})
})
//
promises.push(dispatch(ActionCreators.configuration()))
promises.push(dispatch(ActionCreators.byRef({ language_tag })))
console.log(promises.length)
return Promise.all(promises)
}
},
我尝试了几种不同的方法,例如在版本循环内的调度之前设置var that = this,以及此处显示的内容,尝试在调度上使用.bind(promises)。
promises.length 始终为 2,(因为这两个实际上被推到了底部)。我可以在 .then 中控制语句,所以我知道它正在执行,但调度并没有在 promises 数组中结束。
我很可能以错误的方式思考调度函数。
任何帮助将不胜感激!
【问题讨论】:
标签: javascript reactjs redux redux-thunk