promisifyAll 函数中的回调没有堆栈跟踪
no stack trace on callback in promisifyAll function
我正在使用以下代码来转动这个对象
Extraction = {
phaseone : require('./phaseone')
phasetwo : require('./phasetwo')
phasethree : require('./phasethree')
};
承诺:
Promise.promisifyAll(Extraction);
在第一阶段,我正在执行我所有的逻辑(我不能在这里显示 :/),最后,当我完成所有操作时,我调用回调:
var phaseone: function(file, callback) {
// logic
callback(result);
};
这应该调用 phasetwo,因为我是这样调用的:
Extraction.phaseoneAsync(file).then(Extraction.phasetwoAsync);
但这一切都回来了:
未处理的拒绝(<[{"exists":true,"path":"_input/Estapar...>,无堆栈跟踪)
这可能是什么??
如果您想使用 promisify
,则将错误作为第一个参数传递给回调,这就是 promisify
所期望的:
var phaseone: function(file, callback) {
// logic
callback(null, result);
};
但是如果你打算一直使用 BlueBird,你还不如直接让你的 API Promise 为基础,这样你就不必承诺它了:
var phaseone: function(file) {
return new Promise(function(resolve, reject) {
// logic
resolve(result);
})
};
我正在使用以下代码来转动这个对象
Extraction = {
phaseone : require('./phaseone')
phasetwo : require('./phasetwo')
phasethree : require('./phasethree')
};
承诺:
Promise.promisifyAll(Extraction);
在第一阶段,我正在执行我所有的逻辑(我不能在这里显示 :/),最后,当我完成所有操作时,我调用回调:
var phaseone: function(file, callback) {
// logic
callback(result);
};
这应该调用 phasetwo,因为我是这样调用的:
Extraction.phaseoneAsync(file).then(Extraction.phasetwoAsync);
但这一切都回来了:
未处理的拒绝(<[{"exists":true,"path":"_input/Estapar...>,无堆栈跟踪)
这可能是什么??
如果您想使用 promisify
,则将错误作为第一个参数传递给回调,这就是 promisify
所期望的:
var phaseone: function(file, callback) {
// logic
callback(null, result);
};
但是如果你打算一直使用 BlueBird,你还不如直接让你的 API Promise 为基础,这样你就不必承诺它了:
var phaseone: function(file) {
return new Promise(function(resolve, reject) {
// logic
resolve(result);
})
};