process.nextTick 的语法 - 传递的参数

Syntax of process.nextTick - arguments passed

我正在学习 process.nextTick 并使用它。对此本身有一点疑问。 process.nextTick的第一个参数是回调函数,第二个或第三个参数是什么? 考虑以下代码: 这是控制台上的打印错误,但不打印“第一行”console.log 值 -

function promise(value, cb) {
    if (typeof value !== 'string') {
        return cb(new TypeError('Value should be string'));
    }
    cb(null, Promise.resolve('Hello'));
}

promise(1, (err, success) => {
    if (err) throw err;
    success.then((res) => console.log(res));
});

console.log('First line');

我尝试使用 process.nextTick 使用以下代码更正它,它在终端上打印“第一行”控制台,然后是错误,这很好,可以理解,但我必须传递回调函数和process.nextTick 的错误。是这样吗?有人可以对此给出更好的解释吗?我这里说的是process.nextTick的语法和参数个数,具体来说-

function promise(value, cb) {
    if (typeof value !== 'string') {
        return process.nextTick(cb,
            new TypeError('Value should be string'));
    }
    cb(null, Promise.resolve('Hello'));
}

promise(1, (err, success) => {
    if (err) throw err;
    success.then((res) => console.log(res));
});

console.log('First line');

文档很清楚:

process.nextTick(callback[, ...args])

  • callback <Function>

  • ...args <any> Additional arguments to pass when invoking the callback

这就是该方法的工作原理,它需要一个回调和可选参数,以便在调用时传递给回调。

https://nodejs.org/api/process.html#processnexttickcallback-args