My current solution is to use promises:
var build = function() {
return new Promise(function(fulfill, reject) {
// assuming usage like 'build(args, callback)'
build(args, function(err) {
if (err) {
console.log('build failed');
reject(err);
} else {
console.log('build succeeded');
fulfill();
}
});
});
};
var connect = function() {
return new Promise(function(fulfill, reject) {
// assuming usage like 'connect(address, callback)'
connect(address, function(err) {
if (err) {
console.log('connect failed');
reject(err);
} else {
console.log('connect succeeded');
fulfill();
}
});
});
};
gulp.task('dev', function() {
return build().then(function() {
return connect();
});
});