jQuery.Deferred.exceptionHook()


jQuery.Deferred.exceptionHook()返回: Error

描述: 处理由 Deferreds 产生的错误。

每当 Deferreds 内部抛出错误时,都会调用此 API。默认情况下,它只警告那些更可能是程序员错误而不是由于应用程序逻辑而抛出的错误。这包括诸如 SyntaxErrorReferenceError 等错误。

该函数接受两个参数 - 第一个是抛出的错误,第二个是可选参数,是在调用处理程序之前创建的一个“伪”错误,以便可以获取异步屏障之前的堆栈跟踪。只有在定义了 jQuery.Deferred.getErrorHook 时才会提供第二个错误;有关详细信息,请参阅该 API 的文档。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// These usually indicate a programmer mistake during development;
// warn about them ASAP rather than swallowing them by default.
var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
// If `jQuery.Deferred.getErrorHook` is defined, `asyncError` is an error
// captured before the async barrier to get the original error cause
// which may otherwise be hidden.
jQuery.Deferred.exceptionHook = function( error, asyncError ) {
if ( error && rerrorNames.test( error.name ) ) {
MyLoggingLibrary.log(
"jQuery.Deferred exception",
error,
asyncError
);
}
};