Já mám chrome porušení chyby typu setTimeout handler took 500+ ms
které jsou vážně blokuje moje app, a některé se dějí pokaždé, když se akční připojené k websocket náklad přijde a je zpracována. Zkoušel jsem to ladění s chrome profiler, a to je to, co to ukazuje přesně v okamžiku, kdy náklad je zpracován.
Na (anonymous)
funkce je v reduktoru a čas běžel se shoduje s chybou.
Tady je nějaký kód.
// ACTION
const someAction = (data): Thunk => async dispatch => {
try {
const t = performance.now();
dispatch(someAction(data));
console.log('after dispatching cellReceived', performance.now() - t);
// logs 800+ ms and is consistent with chrome violation errors (setTimeout handler took <N> ms
}
}
// REDUCER
export default(state: State, action: Actions) {
switch(action.type) {
...
case ActionType.someAction: {
const { data } = action.payload;
const t = performance.now();
(... do calculations here)
console.log(performance.now() - t) // logs 30ms
}
}
}
Velice bych ocenil jakoukoli pomoc, musela jsem strávil přes 20 hodin tento týden četl o tomto problému a snaží se ladit. Nechtěl jsem najít nějaké dobré zdroje na to, jak správně ladit s chrome profiler.