請原諒我的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