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)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。