promisifyAll函数中的回调没有堆栈跟踪

no stack trace on callback in promisifyAll function

本文关键字:堆栈 跟踪 回调 函数 promisifyAll      更新时间:2023-09-26

我正在使用以下代码将该对象转换为

Extraction = {
  phaseone   : require('./phaseone')
  phasetwo   : require('./phasetwo')
  phasethree : require('./phasethree')
};

承诺:

Promise.promisifyAll(Extraction);

在第一阶段,我正在做我所有的逻辑(我不能在这里显示:/),最后,当我完成所有操作时,我调用回调:

var phaseone: function(file, callback) {
    // logic
    callback(result);
};

这应该称为第二阶段,因为我这样称呼:

Extraction.phaseoneAsync(file).then(Extraction.phasetwoAsync);

但这一切正在回归:

未处理的拒绝(<[{"exists":true,"path":"_input/Estapar…>,无堆栈跟踪)

这可能是什么??

如果您想使用promisify,那么将错误作为第一个参数传递给回调,这就是promisify所期望的:

var phaseone: function(file, callback) {
    // logic
    callback(null, result);
};

但如果你打算一直使用BlueBird,你也可以直接让你的API承诺为基础,这样你就不必承诺了:

var phaseone: function(file) {
    return new Promise(function(resolve, reject) {
        // logic
        resolve(result);
    })
};