0

我不知道这是一个“陷阱”还是 Javascript、React-native 或它们的组合中的错误。关于 React-native 应用程序的一些基础知识:它使用react-reduxredux-persistredux-thunk.

我有一个在后台轮询并获取应用程序中对象的更新的 fetch。API 端点在没有数据更改时返回 304,当数据发生更改时,它返回一个更新对象数组。基本情况如下所示:

fetchSecure('/objects?filter=all&since='+lastPoll, apiToken, {method: 'GET'})
      .then(response => {
        if(response.status==200) {
          response.json().then(json => { // this is a promise!
            console.log(json) // this logs an empty array
            console.log('Found '+json.length+' new objects') // this logs "1 new objects"
            dispatch(updateObjects(json, true))
          })
        } else {
          console.log('Completed poll: no changes')
        }
      })
      .catch(error => console.log(error))

因此,正如评论所述,如果我执行 aconsole.log(json)它会返回一个空数组。但是,如果我再次记录相同的内容并调用它.lengthjson则会返回更新对象的数量。

如果我使用 lodash 并执行console.log(_.clone(json))它,那么它会给我预期的实际数组。但是,它似乎并没有在代码下游保持其“可读性”。

我无法调试下游发生的事情,因为我的日志记录语句停止工作。是什么导致了这种行为?这是否与redux-thunk承诺的不当实施有关?

4

0 回答 0