Comments (4)
I'm not sure if nested Step calls are supported, but in any case I'm taking a look at the bug.
from step.
Please do! :)
from step.
I also believe there is a race condition. Reproduction:
var dir = '/a/directory/which/has/subdirectories';
var fs = require('fs');
var step = require('step');
var dirs = function(dir, cb) {
fs.readdir(dir, function(err, files) {
step(function() {
var group = this.group();
files.forEach(function(file) {
var cb = group();
fs.stat(dir + '/' + file, function(err, stats) {
if(stats.isDirectory()) {
cb(null, dir + '/' + file);
} else {
cb(null, null);
}
});
});
}, function(err, files) {
var group = this.group();
files.forEach(function(file) {
if(file !== null) {
dirs(file, group());
}
});
}, cb);
});
};
var p = null;
var go = function() {
dirs(dir, function(err, dirs) {
if(p === null) {
p = dirs.length;
}
if(p !== dirs.length) {
throw new Error('weird, previous callback had ' + p + ' dirs but now it has ' + dirs.length + ' dirs!');
}
go();
});
};
go();
from step.
Hi ghost/gleber,
I ran into a similar issue with fs callbacks and step, which I have documented in the comments of this related issue #42.
I have a fork with a fix in place, but I haven't made a clean pull request yet. Even so, if you're blocking on this issue, the proposed work-around is straight-forward.
from step.
Related Issues (20)
- Problem if the first argument of a callback is not error HOT 2
- problem in 'throw arguments[0]' HOT 1
- A way to step back to previous HOT 1
- Can I preserve a callback across multiple steps? HOT 2
- Critical: Step is skipping steps! HOT 4
- Step is broken for use with Express.js! HOT 1
- Consider API for next major version of Step HOT 5
- Cancel a Step Sequence HOT 1
- Broken code in README (node v0.6.12)
- Missing instrunctions on how to run the tests HOT 1
- step ignores wrong javascript code silently HOT 5
- skipping steps HOT 2
- Please throw actual Errors, not strings HOT 2
- process.nextTick(check) in next.group could cause a bug of race condition HOT 1
- step is just no value, it's just a trick HOT 3
- Remove nextTick check for groups. HOT 3
- Change log HOT 4
- Please release 1.0.0 to npm HOT 2
- Returning multiple parameters in a callback that has been grouped HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from step.