Files
jsowell-charger-web/jsowell-ui/node_modules/enhanced-resolve/lib/forEachBail.js
Lemon f5e6e29f00 Merge branch 'dev-zza' into dev
# Conflicts:
#	jsowell-ui/.env.development
#	jsowell-ui/.env.staging
#	jsowell-ui/bin/build-sit.bat
#	jsowell-ui/bin/build.bat
#	jsowell-ui/src/api/adapayMember/adapayMember.js
#	jsowell-ui/src/api/pile/merchant.js
#	jsowell-ui/src/router/index.js
#	jsowell-ui/src/views/financial/financeDetail.vue
#	jsowell-ui/src/views/financial/merchant.vue
#	jsowell-ui/src/views/homeIndex/homeIndex.vue
#	jsowell-ui/src/views/login.vue
#	jsowell-ui/src/views/pile/basic/detail.vue
#	jsowell-ui/src/views/pile/station/components/SiteInfo.vue
#	jsowell-ui/src/views/pile/station/detail.vue
#	jsowell-ui/src/views/pile/station/orderReport.vue
2025-06-03 14:26:37 +08:00

70 lines
1.5 KiB
JavaScript

/*
MIT License http://www.opensource.org/licenses/mit-license.php
Author Tobias Koppers @sokra
*/
"use strict";
module.exports = function forEachBail(array, iterator, callback) {
if (array.length === 0) return callback();
let currentPos = array.length;
let currentResult;
let done = [];
for (let i = 0; i < array.length; i++) {
const itCb = createIteratorCallback(i);
iterator(array[i], itCb);
if (currentPos === 0) break;
}
function createIteratorCallback(i) {
return (...args) => {
if (i >= currentPos) return; // ignore
done.push(i);
if (args.length > 0) {
currentPos = i + 1;
done = done.filter(item => {
return item <= i;
});
currentResult = args;
}
if (done.length === currentPos) {
callback.apply(null, currentResult);
currentPos = 0;
}
};
}
};
module.exports.withIndex = function forEachBailWithIndex(
array,
iterator,
callback
) {
if (array.length === 0) return callback();
let currentPos = array.length;
let currentResult;
let done = [];
for (let i = 0; i < array.length; i++) {
const itCb = createIteratorCallback(i);
iterator(array[i], i, itCb);
if (currentPos === 0) break;
}
function createIteratorCallback(i) {
return (...args) => {
if (i >= currentPos) return; // ignore
done.push(i);
if (args.length > 0) {
currentPos = i + 1;
done = done.filter(item => {
return item <= i;
});
currentResult = args;
}
if (done.length === currentPos) {
callback.apply(null, currentResult);
currentPos = 0;
}
};
}
};