该jsonix
库不遵循first argument must be an error
约定,因此我决定使用 bluebird 并像这样承诺它:
return new Promise(function(resolve, reject) {
try {
unmarshaller.unmarshalString(xmlResponse,
function (unmarshalled) {
...
resolve(unmarshalled);
});
}
catch (error) {
reject(error);
}
});
但这会无限期地挂起!然而,如果我只是将其保存xmlResponse
到一个文件中,然后用不同的方法处理它:unmarshalFile
......承诺似乎工作得很好!
return new Promise(function(resolve, reject) {
try {
unmarshaller.unmarshalFile('test1.xml',
function (unmarshalled) {
...
resolve(unmarshalled);
});
}
catch (error) {
reject(error);
}
});
所以我的问题是,为什么一种方法的承诺会失败,而另一种方法则不会?