util.callbackify(original)
添加于:v8.2.0
参数
original
<Function>async
函数- 返回: <Function> 一个回调样式函数
采用 async
函数(或返回 Promise
的函数)并返回遵循 error-first 回调样式的函数,即将 (err, value) => ...
回调作为最后一个参数。在回调中,第一个参数将是拒绝原因(如果 Promise
已解决,则为 null
),第二个参数将是已解决的值。
const util = require('node:util');
async function fn() {
return 'hello world';
}
const callbackFunction = util.callbackify(fn);
callbackFunction((err, ret) => {
if (err) throw err;
console.log(ret);
});
将打印:
hello world
回调是异步执行的,并且将具有有限的堆栈跟踪。如果回调抛出,进程将发出
事件,如果未处理将退出。'uncaughtException'
由于 null
作为回调的第一个参数具有特殊含义,因此如果包装函数以虚假值作为原因拒绝 Promise
,则该值将包装在 Error
中,并将原始值存储在字段中命名为 reason
。
function fn() {
return Promise.reject(null);
}
const callbackFunction = util.callbackify(fn);
callbackFunction((err, ret) => {
// When the Promise was rejected with `null` it is wrapped with an Error and
// the original value is stored in `reason`.
err && Object.hasOwn(err, 'reason') && err.reason === null; // true
});
相关用法
- Node.js util.callbackify()用法及代码示例
- Node.js util.types.isInt16Array(value)用法及代码示例
- Node.js util.types.isNativeError(value)用法及代码示例
- Node.js util.isUndefined(object)用法及代码示例
- Node.js util.types.isArrayBufferView(value)用法及代码示例
- Node.js util.types.isMap(value)用法及代码示例
- Node.js util.types.isUint8ClampedArray(value)用法及代码示例
- Node.js util.inspect()用法及代码示例
- Node.js util.types.isSymbolObject(value)用法及代码示例
- Node.js util.isObject(object)用法及代码示例
- Node.js util.isString(object)用法及代码示例
- Node.js util.types.isPromise(value)用法及代码示例
- Node.js util.isPrimitive(object)用法及代码示例
- Node.js util.format()用法及代码示例
- Node.js util.isNull(object)用法及代码示例
- Node.js util.types.isSetIterator()用法及代码示例
- Node.js util.types.isArgumentsObject(value)用法及代码示例
- Node.js util.debuglog(section[, callback])用法及代码示例
- Node.js util.types.isFloat64Array()用法及代码示例
- Node.js util.types.isBooleanObject()用法及代码示例
- Node.js util.types.isInt32Array(value)用法及代码示例
- Node.js util.getSystemErrorName()用法及代码示例
- Node.js util.types.isUint16Array(value)用法及代码示例
- Node.js util.types.isSharedArrayBuffer()用法及代码示例
- Node.js util.types.isTypedArray()用法及代码示例
注:本文由纯净天空筛选整理自nodejs.org大神的英文原创作品 util.callbackify(original)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。