diff --git a/forEachAsync.js b/forEachAsync.js index 52ff957..b7cdaaa 100644 --- a/forEachAsync.js +++ b/forEachAsync.js @@ -30,7 +30,7 @@ ret = PromiseA.resolve(result); } - ret.then(function (val) { + return ret.then(function (val) { if (val === forEachAsync.__BREAK) { return PromiseA.reject(new Error('break')); //throw new Error('break'); diff --git a/package.json b/package.json index a0e5c64..f9cce9d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "foreachasync", - "version": "5.0.1", + "version": "5.0.2", "description": "A node- and browser-ready async (now with promises) counterpart of Array.prototype.forEach", "homepage": "https://github.com/FuturesJS/forEachAsync", "main": "forEachAsync.js", diff --git a/test-bluebird.js b/test-bluebird.js index daa6f54..e8aab64 100644 --- a/test-bluebird.js +++ b/test-bluebird.js @@ -7,21 +7,28 @@ ; forEachAsync([0, 500, 70, 200, 400, 100], function (element, i, arr) { - // test that array order is as expected - console.log(element, 'is element', i, 'of', arr.length); + console.log(i, '/', arr.length, 'began'); + + var result + ; // test that thisness is applied this[element] = i; - if (i > 2) { + if (i % 2) { // test that synchronous callbacks don't mess things up - return PromiseA.resolve(); + result = PromiseA.resolve(); } else { // test asynchronous callbacks - return new Promise(function (resolve/*, reject*/) { + result = new Promise(function (resolve/*, reject*/) { setTimeout(resolve, element); }); } + + return result.then(function () { + // test that array order is as expected + console.log(i, '/', arr.length, 'complete'); + }); }, context).then(function () { // test that thisness carried console.log('context', context); diff --git a/test-native.js b/test-native.js index 2c5d7cf..58113f3 100644 --- a/test-native.js +++ b/test-native.js @@ -6,21 +6,26 @@ ; forEachAsync([0, 500, 70, 200, 400, 100], function (element, i, arr) { - // test that array order is as expected - console.log(element, 'is element', i, 'of', arr.length); + var p + ; // test that thisness is applied this[element] = i; - if (i > 2) { + if (i % 2) { // test that synchronous callbacks don't mess things up - return Promise.resolve(); + p = Promise.resolve(); } else { // test asynchronous callbacks - return new Promise(function (resolve/*, reject*/) { + p = new Promise(function (resolve/*, reject*/) { setTimeout(resolve, element); }); } + + return p.then(function () { + // test that array order is as expected + console.log(element, 'is element', i, 'of', arr.length); + }); }, context).then(function () { // test that thisness carried console.log('context', context);