diff --git a/ghost/promise/lib/sequence.js b/ghost/promise/lib/sequence.js index 34d6d42456..c004612008 100644 --- a/ghost/promise/lib/sequence.js +++ b/ghost/promise/lib/sequence.js @@ -1,16 +1,25 @@ -var Promise = require('bluebird'); +const Promise = require('bluebird'); /** * expects an array of functions returning a promise */ function sequence(tasks /* Any Arguments */) { - var args = Array.prototype.slice.call(arguments, 1); + const args = Array.prototype.slice.call(arguments, 1); return Promise.reduce(tasks, function (results, task) { - return task.apply(this, args).then(function (result) { - results.push(result); - return results; - }); + const response = task.apply(this, args); + + if (response && response.then) { + return response.then(function (result) { + results.push(result); + return results; + }); + } else { + return Promise.resolve().then(() => { + results.push(response); + return results; + }); + } }, []); }