Skip to content

Commit df559c9

Browse files
committed
feat: foreach method supported object
1 parent 94a37a1 commit df559c9

1 file changed

Lines changed: 6 additions & 3 deletions

File tree

src/helper/cmd.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -308,8 +308,10 @@ async function _foreach(data, resolver) {
308308
}
309309
const event = new EventEmitter();
310310
let datas = _deep_clone(data);
311+
let keys = [];
311312
if (is.object(data)) {
312-
datas = Object.keys(data).map((d) => data[d]);
313+
keys = Object.keys(data);
314+
datas = keys.map((d) => data[d]);
313315
} else if (!is.array(data)) {
314316
throw new Error('Unsupported data type : ' + typeof data);
315317
}
@@ -320,8 +322,9 @@ async function _foreach(data, resolver) {
320322
event.emit('done');
321323
return;
322324
}
323-
resolver(row, index).then(() => {
324-
index++;
325+
const i = typeof keys[index] !== 'undefined' ? keys[index] : index;
326+
index++;
327+
resolver(row, i).then(() => {
325328
event.emit('step', rows, resolver, index);
326329
}).catch((err) => event.emit('error', err));
327330
});

0 commit comments

Comments
 (0)