echarts报错ResizeObserver loop completed with undelivered notifications
时间: 2023-11-30 19:42:35 浏览: 168
根据提供的引用内容,这个错误是由于ResizeObserver循环完成时有未传递的通知,导致循环限制被超出所致。这个错误通常与echarts的图表大小调整有关。解决这个问题的方法是使用一个debounce函数来限制ResizeObserver的回调函数的执行频率。在提供的第二个引用中,代码中的debounce函数将回调函数限制为每16毫秒执行一次。如果这个方法不起作用,可能是因为代码没有正确添加到main.ts文件中。请确保代码已正确添加到文件中,并检查是否有其他代码干扰了ResizeObserver的正常工作。
相关问题
echarts报错ResizeObserver loop completed with undelivered notifications解决方法
针对echarts报错ResizeObserver loop completed with undelivered notifications的问题,可以尝试以下解决方法:
1.升级浏览器版本,因为该问题通常是由于浏览器版本过低导致的。
2.在代码中加入ResizeObserver的polyfill,可以使用npm安装resize-observer-polyfill,然后在代码中引入即可。
3.在代码中加入debounce函数,可以使用以下代码:
```typescript
const debounce = (fn: any, delay: any) => {
let timer: any = null;
return function () {
let context = this;
let args = arguments;
clearTimeout(timer);
timer = setTimeout(function () {
fn.apply(context, args);
}, delay);
};
}
const _ResizeObserver = window.ResizeObserver;
window.ResizeObserver = class ResizeObserver extends _ResizeObserver {
constructor(callback: any) {
callback = debounce(callback, 16);
super(callback);
}
}
```
以上是三种解决方法,可以根据具体情况选择其中一种或多种方法进行尝试。
解决 ResizeObserver loop completed with undelivered notifications 报错
这个错误通常是由于在ResizeObserver回调函数中进行DOM操作而导致的。为了解决这个问题,可以使用debounce函数来限制ResizeObserver回调函数的执行频率,从而避免出现这个错误。
以下是解决ResizeObserver loop completed with undelivered notifications报错的步骤:
1.在代码中添加debounce函数的实现代码,如下所示:
```typescript
const debounce = (fn: any, delay: any) => {
let timer: any = null;
return function () {
let context = this;
let args = arguments;
clearTimeout(timer);
timer = setTimeout(function () {
fn.apply(context, args);
}, delay);
};
}
```
2.在ResizeObserver回调函数中使用debounce函数,如下所示:
```typescript
const observer = new ResizeObserver(debounce((entries: any) => {
// 在这里执行DOM操作
}, 16));
```
这样就可以避免出现ResizeObserver loop completed with undelivered notifications报错了。
阅读全文