vue.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > vue.js > Uncaught(in promise)TypeError

关于Uncaught(in promise)TypeError: list is not iterable报错解决

作者:不悔0.0

这篇文章主要给大家介绍了关于Uncaught(in promise)TypeError: list is not iterable报错的解决方法,文中通过示例代码介绍的非常详细,对大家学习或者工作具有一定的参考借鉴价值,需要的朋友可以参考下

最近在项目中遇到 Uncaught (in promise) TypeError: list is not iterable 报错,虽然不影响代码运行,但是看着报错感觉有点难受,试试能不能解决它

看了很多篇文章,都是说使用 Object.keys() 可以解决问题

formatTree2(list) {
      for (const item of Object.keys(list)) {
        if (list[item].children && list[item].children.length === 0) {
          delete list[item].children
        } else {
          this.formatTree2(list[item].children)
        }
      }
    },

就先使用 Object.keys() 看看,代码运行之后

因为 Object.keys() 传入的是 null 和 undefined 时就会出现这种问题,如何解决呢,试试加条件判断

formatTree2(list) {
      if (list) {
        for (const item of Object.keys(list)) {
          if (list[item].children && list[item].children.length === 0) {
            delete list[item].children
          } else {
            this.formatTree2(list[item].children)
          }
        }
      }
    },

添加条件判断之后,确实能够解决,代码正常运行,也不报错了,很好

仔细琢磨一下,感觉加条件判断的话是不是可以不使用 Object.keys() 呢,值得一试

formatTree2(list) {
      if (list) {
        for (const item of list) {
          if (item.children && item.children.length === 0) {
            delete item.children
          } else {
            this.formatTree2(item.children)
          }
        }
      }
    },

代码运行之后,功能正常也不报错,确实是可以的

总结一下:

使不使用 Object.keys() 其实都可以,主要的关键点在于添加条件使得 list 在不为null或undefined时执行代码,如果为了保险起见可以添加 Object.kes() ,看项目需求吧

到此这篇关于Uncaught(in promise)TypeError: list is not iterable报错解决的文章就介绍到这了,更多相关Uncaught(in promise)TypeError内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文