• fn {Function} 要被弃用的函数。
    • msg {string} 当调用弃用的函数时显示的警告消息。
    • code {string} 弃用码。 有关代码列表,请参见[弃用的 API 列][list of deprecated APIs]。
    • 返回: {Function} 弃用的函数被包装以发出警告。

    util.deprecate() 方法以一种标记为已弃用的方式包装 fn(可以是函数或类)。

    1. const util = require('util');
    2. exports.obsoleteFunction = util.deprecate(() => {
    3. // 一些操作。
    4. }, 'obsoleteFunction() 已弃用,使用 newShinyFunction() 代替');

    当被调用时,util.deprecate() 会返回一个函数,这个函数会使用 ['warning'] 事件触发一个 DeprecationWarning。 默认情况下,警告只在首次被调用时才会被触发并打印到 stderr。 警告被触发之后,被包装的函数会被调用。

    如果在对 util.deprecate() 的多次调用中提供了相同的可选 code,则该 code 仅触发一次警告。

    1. const util = require('util');
    2. const fn1 = util.deprecate(someFunction, someMessage, 'DEP0001');
    3. const fn2 = util.deprecate(someOtherFunction, someOtherMessage, 'DEP0001');
    4. fn1(); // 使用代码 DEP0001 触发弃用警告。
    5. fn2(); // 不会触发弃用警告,因为它具有相同的代码。

    如果使用了 --no-deprecation--no-warnings 命令行标记,或 process.noDeprecation 属性在首次弃用警告之前被设为 true,则 util.deprecate() 方法什么也不做。

    如果设置了 --trace-deprecation--trace-warnings 命令行标记,或 process.traceDeprecation 属性被设为 true,则弃用的函数首次被调用时会把警告与堆栈追踪打印到 stderr

    如果设置了 --throw-deprecation 命令行标记,或 process.throwDeprecation 属性被设为 true,则当弃用的函数被调用时会抛出一个异常。

    --throw-deprecation 命令行标记和 process.throwDeprecation 属性优先于 --trace-deprecationprocess.traceDeprecation