以下代码更新一些数据,重新获取它,然后等待图像字段加载:
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()); //<==========
关于javascript - 为什么下面的 image.onload 抛出 : "Maximum Call Stack Size Exceeded"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38735828/