请原谅我的noobness,但为什么这不工作? then()
永远不会被解雇,也不会是error()
。承诺似乎永远不会解决。Bluebird Promisify execFile无法承诺解决
任何指针赞赏。谢谢。
var Promise = require('bluebird');
var execFile = require('child_process').execFile;
execFile = Promise.promisify(execFile);
var IMAGE_DIR = "resources/assets/images";
var validImages = ['.jpg', '.png'];
... // setup omitted ...
execFile('find', [IMAGE_DIR], function (err, stdout, stderr) {
var images = [];
return new Promise(function(resolve) {
var fileList = stdout.split('\n');
images = fileList.filter(function (image) {
var ext = path.extname(image);
if (validImages.indexOf(ext) > -1) {
return image;
}
})
return resolve(images);
})
}).then(function() {
console.log(arguments);
}).catch(console.log.bind(console));
您不能将回调传递给promisfied函数。你不应该自己调用'new Promise'构造函数。 – Bergi
谢谢您的评论,但这并不能帮助我。 – Simon