我在这方面找不到任何东西,所以我决定在这里问。我正在使用 react-native 和 redux。我将业务逻辑排除在代码之外。
我有这个函数调用另一个执行 API 调用的函数。执行 API 调用的函数需要访问“getState”,这就是我使用 dispatch 的原因。
const getStuff = (day) => (dispatch) => {
const result = await dispatch(functionThatDoesAPIRequest(day)
}
然后我有这个循环数天的代码,在某些情况下需要进行 API 调用。在我正在测试的情况下,它不需要访问 API。直到我在注释中的 if 语句之间放置了一行,我才发现我的代码有问题。然后我将 if 更改为始终为 False 并且当代码行不在注释中时错误仍然存在,即使它永远无法到达那段代码。
for (let i = 0; i < dayArray.length; i+=1) {
if (false) {
const resultThatIsNotNeeded = await dispatch(getStuff(dayArray[i])
}
// more business logic
}
将 for 循环更改为 ForEach 循环以某种方式解决了这个问题。但我真的不知道为什么这会解决它。
dayArray.forEach(async (day, i) => {
if (false) {
const resultThatIsNotNeeded = await dispatch(getStuff(dayArray[i])
}
}