下面的代码更新一些数据,它重新提取,然后等待一个图像场加载:为什么下面的image.onload投掷:“超出最大调用堆栈大小”?
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
抛出Maximum Call Stack Size Exceeded
。
这是为什么?
编辑:
result.data
看起来是这样的:
{ app: "http://ac-0uhksb6K.clouddn.com/370b989e0ceec6329fb6.jpg? imageView/2/w/4096/h/2048/q/100/format/png" categoryType : "livingroom" web: "http://ac-0uhksb6K.clouddn.com/370b989e0ceec6329fb6.jpg?imageView/2/w/4096/h/2048/q/100/format/png" }
为什么要递归调用'image.onload()'?这也没有任何休息条件 – Satpal
@Satpal - 这就是答案,而不是一个评论... – searlea
@Satpal,哦,我只是记录它来检查函数返回。 – alexchenco