我使用以下代码来转换此对象
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);
但所有这一切都在回归:
未处理的拒绝(< [{"存在":true,"路径":" _input / Estapar ...>,没有堆栈跟踪)
这可能是什么?
答案 0 :(得分:0)
如果你想使用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);
})
};