Define empty Bluebird promise like in Q

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
    });

Leave a Comment