UNPKG

monitor-test

Version:

网页性能监控 18 项数据指标,浏览器信息,错误收集上报方案,前端工程化。

57 lines (48 loc) 1.27 kB
import { send } from '../../sender/send' import { pre, stores } from '../../config' import { getStackMessage, getPathSelect } from '../../utils' export default () => { window.addEventListener( 'unhandledrejection', function (e) { let message = '' let stack = '' let filename = '' let line = 0 let col = 0 let reason = e.reason if (typeof reason === 'string') { message = reason } else if (typeof reason === 'number') { message = reason.toString() } else if (typeof reason === 'object') { message = reason.message if (reason.stack) { let matchResult = reason.stack.match(/at\s+(.+):(\d+):(\d+)/) filename = matchResult[1] line = matchResult[2] col = matchResult[3] stack = getStackMessage(reason.stack) } } let position = `${line}:${col}` let selector = window._lastEvent ? getPathSelect(window._lastEvent.path) : '' send( stores.promise, { type: 'error', subType: 'promise_error', message, stack, filename, position, selector }, pre.promise ) }, true ) }