javascript - 为什么下面的 image.onload 抛出 : "Maximum Call Stack Size Exceeded"?

标签 javascript

以下代码更新一些数据,重新获取它,然后等待图像字段加载:

api.updateBuildings(payload).then(result => {
  this.fetchBuildings(() => {
    const image = new Image()
    image.src = result.data.web
    this.setIsLoading(false)
    image.onload = () => {
      console.log('LOADED:', image.onload())
    }
  })
})

但是,image.onload 抛出超过最大调用堆栈大小

这是为什么?

编辑:

result.data 如下所示:

{ 应用程序:“http://ac-0uhksb6K.clouddn.com/370b989e0ceec6329fb6.jpg?imageView/2/w/4096/h/2048/q/100/format/png” 类别类型:“客厅” 网页:“http://ac-0uhksb6K.clouddn.com/370b989e0ceec6329fb6.jpg?imageView/2/w/4096/h/2048/q/100/format/png” }

最佳答案

原因很简单。您正在递归调用 image.onload() 而没有任何中断条件。因此,方法会被连续调用,直到达到调用堆栈限制。

问题陈述是

console.log('LOADED:', image.onload()); //<========== 

一本好书Maximum call stack size exceeded error

关于javascript - 为什么下面的 image.onload 抛出 : "Maximum Call Stack Size Exceeded"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38735828/

相关文章:

javascript - 在 Jquery 中验证表单的输入字段

javascript - 我在一个简单的JS程序中犯了一个错误,但我不知道为什么会出错

javascript - 从 HTML 按钮播放 Javascript 播放器

javascript - Excel 插件 - 如何在桌面版中触发文档下载

javascript - typeof x 仅在 for ... of 循环中使用时给出一个结果,即最后一个值结果

javascript - 相同高度的 Bootstrap 2 列

javascript - JS如何以编程方式创建断点

php - Javascript 表单和对 PHP 的 Ajax 请求

javascript - 类型错误 : Cannot assign to read only property 'checked' checkbox

Javascript - 清除元素的属性