Florian provided a good answer For the sake of your original question, there are several ways to start a chain with Bluebird.
One of the simplest is calling Promise.resolve()
on nothing:
var queue = Promise.resolve(); //resolve a promise with nothing or cast a value
or
Promise.try(function(...){
return ...//chain here
});
So you can do:
var queue = Promise.resolve()
promises = [];
queue = queue.then(function () {
return Main.gitControl.gitAdd(fileObj.filename, updateIndex);
});
// Here more promises are added to queue in the same way used above...
promises.push(queue);
return Promise.all(promises).then(function () {
// ...
});
Although, personally I'd do something like:
//arr is your array of fileObj and updateIndex
Promise.map(arr,function(f){ return Main.gitControl.gitAdd(f.filename,f.updateIndex).
then (function(result){
//results here
});
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…