fixed order bug
This commit is contained in:
parent
8daeae0e1d
commit
70eda0ad55
|
@ -30,7 +30,7 @@
|
||||||
ret = PromiseA.resolve(result);
|
ret = PromiseA.resolve(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
ret.then(function (val) {
|
return ret.then(function (val) {
|
||||||
if (val === forEachAsync.__BREAK) {
|
if (val === forEachAsync.__BREAK) {
|
||||||
return PromiseA.reject(new Error('break'));
|
return PromiseA.reject(new Error('break'));
|
||||||
//throw new Error('break');
|
//throw new Error('break');
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "foreachasync",
|
"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",
|
"description": "A node- and browser-ready async (now with promises) counterpart of Array.prototype.forEach",
|
||||||
"homepage": "https://github.com/FuturesJS/forEachAsync",
|
"homepage": "https://github.com/FuturesJS/forEachAsync",
|
||||||
"main": "forEachAsync.js",
|
"main": "forEachAsync.js",
|
||||||
|
|
|
@ -7,21 +7,28 @@
|
||||||
;
|
;
|
||||||
|
|
||||||
forEachAsync([0, 500, 70, 200, 400, 100], function (element, i, arr) {
|
forEachAsync([0, 500, 70, 200, 400, 100], function (element, i, arr) {
|
||||||
// test that array order is as expected
|
console.log(i, '/', arr.length, 'began');
|
||||||
console.log(element, 'is element', i, 'of', arr.length);
|
|
||||||
|
var result
|
||||||
|
;
|
||||||
|
|
||||||
// test that thisness is applied
|
// test that thisness is applied
|
||||||
this[element] = i;
|
this[element] = i;
|
||||||
|
|
||||||
if (i > 2) {
|
if (i % 2) {
|
||||||
// test that synchronous callbacks don't mess things up
|
// test that synchronous callbacks don't mess things up
|
||||||
return PromiseA.resolve();
|
result = PromiseA.resolve();
|
||||||
} else {
|
} else {
|
||||||
// test asynchronous callbacks
|
// test asynchronous callbacks
|
||||||
return new Promise(function (resolve/*, reject*/) {
|
result = new Promise(function (resolve/*, reject*/) {
|
||||||
setTimeout(resolve, element);
|
setTimeout(resolve, element);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return result.then(function () {
|
||||||
|
// test that array order is as expected
|
||||||
|
console.log(i, '/', arr.length, 'complete');
|
||||||
|
});
|
||||||
}, context).then(function () {
|
}, context).then(function () {
|
||||||
// test that thisness carried
|
// test that thisness carried
|
||||||
console.log('context', context);
|
console.log('context', context);
|
||||||
|
|
|
@ -6,21 +6,26 @@
|
||||||
;
|
;
|
||||||
|
|
||||||
forEachAsync([0, 500, 70, 200, 400, 100], function (element, i, arr) {
|
forEachAsync([0, 500, 70, 200, 400, 100], function (element, i, arr) {
|
||||||
// test that array order is as expected
|
var p
|
||||||
console.log(element, 'is element', i, 'of', arr.length);
|
;
|
||||||
|
|
||||||
// test that thisness is applied
|
// test that thisness is applied
|
||||||
this[element] = i;
|
this[element] = i;
|
||||||
|
|
||||||
if (i > 2) {
|
if (i % 2) {
|
||||||
// test that synchronous callbacks don't mess things up
|
// test that synchronous callbacks don't mess things up
|
||||||
return Promise.resolve();
|
p = Promise.resolve();
|
||||||
} else {
|
} else {
|
||||||
// test asynchronous callbacks
|
// test asynchronous callbacks
|
||||||
return new Promise(function (resolve/*, reject*/) {
|
p = new Promise(function (resolve/*, reject*/) {
|
||||||
setTimeout(resolve, element);
|
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 () {
|
}, context).then(function () {
|
||||||
// test that thisness carried
|
// test that thisness carried
|
||||||
console.log('context', context);
|
console.log('context', context);
|
||||||
|
|
Loading…
Reference in New Issue