我正在尝试使用ffmpeg来剪切带有mp3的目录的几秒钟。 但我的实际问题来自于使用承诺。
不是在另一个之后启动一个ffmpeg进程,而是立即为每个文件启动一个。 我的猜测是承诺不等待决心,我不理解它。
var P = require('bluebird');
var fs = P.promisifyAll(require("fs"));
function transcode(filename) {
return P.delay(1000).then(function() {
console.log(filename);
});
}
var in_dir = "./somedir/";
var getFiles = function(){
return fs.readdirAsync(in_dir);
};
getFiles().mapSeries(function(filename){
transcode(filename);
});
答案 0 :(得分:1)
我已经创建了代码的简化版本。唯一缺少的是最后一次关闭的 return
语句:
var P = require('bluebird');
var fs = P.promisifyAll(require("fs"));
function transcode(filename) {
return P.delay(1000).then(function() {
console.log(filename);
});
}
var in_dir = "./somedir/";
var getFiles = function(){
return fs.readdirAsync(in_dir);
};
getFiles().mapSeries(function(filename){
return transcode(filename);
});