process.emitWarning(warning[, options])
warning
<string> | <Error> 触发的警告。options
<Object>type
<string> 当warning
是一个String
时,则type
是用于被触发的警告类型的名称。 默认值:'Warning'
。code
<string> 要触发的警告实例的唯一标识符。ctor
<Function> 当warning
是一个String
时,则ctor
是一个可选的函数,用于限制生成的堆栈信息。默认值:process.emitWarning
。detail
<string> 错误的附加信息。
process.emitWarning()
方法可用于触发自定义或应用特定的进程警告。
可以通过给 'warning'
事件增加句柄来监听这些警告。
// 使用代码和其他详细信息触发警告。
process.emitWarning('出错啦', {
code: 'MY_WARNING',
detail: '一些额外的信息'
});
// 触发:
// (node:56338) [MY_WARNING] Warning: 出错啦
// 一些额外的信息
在上面例子中, process.emitWarning()
内部生成了一个 Error
对象,并传给 'warning'
句柄。
process.on('warning', (warning) => {
console.warn(warning.name); // 'Warning'
console.warn(warning.message); // '出错啦'
console.warn(warning.code); // 'MY_WARNING'
console.warn(warning.stack); // Stack trace
console.warn(warning.detail); // '一些额外的信息'
});
如果 warning
是一个 Error
对象,则 options
参数会被忽略。
warning
<string> | <Error> The warning to emit.options
<Object>type
<string> Whenwarning
is aString
,type
is the name to use for the type of warning being emitted. Default:'Warning'
.code
<string> A unique identifier for the warning instance being emitted.ctor
<Function> Whenwarning
is aString
,ctor
is an optional function used to limit the generated stack trace. Default:process.emitWarning
.detail
<string> Additional text to include with the error.
The process.emitWarning()
method can be used to emit custom or application
specific process warnings. These can be listened for by adding a handler to the
'warning'
event.
// Emit a warning with a code and additional detail.
process.emitWarning('Something happened!', {
code: 'MY_WARNING',
detail: 'This is some additional information'
});
// Emits:
// (node:56338) [MY_WARNING] Warning: Something happened!
// This is some additional information
In this example, an Error
object is generated internally by
process.emitWarning()
and passed through to the
'warning'
handler.
process.on('warning', (warning) => {
console.warn(warning.name); // 'Warning'
console.warn(warning.message); // 'Something happened!'
console.warn(warning.code); // 'MY_WARNING'
console.warn(warning.stack); // Stack trace
console.warn(warning.detail); // 'This is some additional information'
});
If warning
is passed as an Error
object, the options
argument is ignored.