本文整理汇总了TypeScript中async.forEachSeries函数的典型用法代码示例。如果您正苦于以下问题:TypeScript forEachSeries函数的具体用法?TypeScript forEachSeries怎么用?TypeScript forEachSeries使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了forEachSeries函数的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: Promise
return new Promise((res, rej) => {
async.forEachSeries(todos, function(task:any, callback:any){
tasks[task] && tasks[task](conf, callback);
}, (err:any) => {
if (err) return rej(err)
return res()
});
})
示例2: afterJob
export function afterJob(plugins, ctx: ctxm.JobContext, wkCtx: ctxm.WorkerContext, jobSuccess: Boolean, callback: (err: any, success: boolean) => void): void {
trace = new tm.Tracing(__filename, wkCtx);
trace.enter('afterJob plugins');
async.forEachSeries(plugins['afterJob'],
function (plugin, done) {
trace.write('afterJob plugin: ' + plugin.pluginName());
if (!plugin.shouldRun(jobSuccess, ctx)) {
trace.write('should not run');
done();
return;
}
ctx.info('Running afterJob for : ' + plugin.pluginName());
ctx.writeConsoleSection('Running ' + plugin.pluginName());
var logDescr = 'Plugin afterJob:' + plugin.pluginName();
var pluginCtx: ctxm.PluginContext = new ctxm.PluginContext(ctx.job,
ctx.authHandler,
plugin.afterId,
ctx.service,
wkCtx);
pluginCtx.on('message', function (message) {
ctx.service.queueConsoleLine(message);
});
shell.cd(pluginCtx.buildDirectory);
ctx.setTaskStarted(plugin.afterId, plugin.pluginName());
plugin.afterJob(pluginCtx, function (err) {
if (err) {
ctx.setTaskResult(plugin.afterId, plugin.pluginName(), ifm.TaskResult.Failed);
ctx.error(err);
pluginCtx.end();
done(err);
return;
}
ctx.setTaskResult(plugin.afterId, plugin.pluginName(), ifm.TaskResult.Succeeded);
ctx.info('Done afterJob for : ' + plugin.pluginName());
pluginCtx.end();
done(null);
});
},
function (err) {
callback(err, !err);
});
}
示例3: afterJob
export function afterJob(plugins: IPlugin[], executionContext: cm.IExecutionContext, hostContext: ctxm.HostContext, jobSuccess: boolean, callback: (err: any, success: boolean) => void): void {
trace = new tm.Tracing(__filename, hostContext);
trace.enter('afterJob plugins');
async.forEachSeries(plugins['afterJob'],
function (plugin: IPlugin, done) {
trace.write('afterJob plugin: ' + plugin.pluginName());
if (!plugin.shouldRun(jobSuccess, executionContext)) {
trace.write('should not run');
done();
return;
}
hostContext.info('Running afterJob for : ' + plugin.pluginName());
executionContext.writeConsoleSection('Running ' + plugin.pluginName());
var logDescr = 'Plugin afterJob:' + plugin.pluginName();
// create a new execution context with the before-job timeline record id
var pluginContext = new ctxm.ExecutionContext(executionContext.jobInfo, executionContext.authHandler, plugin.afterId, executionContext.service, hostContext);
pluginContext.on('message', function (message) {
pluginContext.service.queueConsoleLine(message);
});
pluginContext.setTaskStarted(plugin.pluginName());
plugin.afterJob(pluginContext, function (err) {
if (err) {
pluginContext.setTaskResult(plugin.pluginName(), agentifm.TaskResult.Failed);
pluginContext.error(err);
pluginContext.end();
done(err);
}
else {
pluginContext.setTaskResult(plugin.pluginName(), agentifm.TaskResult.Succeeded);
hostContext.info('Done afterJob for : ' + plugin.pluginName());
pluginContext.end();
done(null);
}
});
},
function (err) {
callback(err, !err);
});
}
示例4: exec
exec( args: ConcatYamlToJsonArgs, done: ( err: boolean ) => void ) {
let res = new Array<any>();
async.forEachSeries( args.directories, ( target, cb_dir ) => {
this.get_filtered_target( target, target, ( err_fr: boolean, fr ) => {
if ( err_fr || ! fr )
return cb_dir( false );
const dir = fr.name;
this.read_dir( dir, ( err, content ) => {
if ( err ) return cb_dir( false );
async.forEachSeries( content, ( name, cb_cnt ) => {
// skip if not a .yam file
if ( ! name.toLowerCase().endsWith( ".yaml" ) )
return cb_cnt( null );
// a way to store the dependancy (and potentially handle code generation)
this.get_filtered_target( path.resolve( dir, name ), dir, ( err, ft ) => {
if ( err )
return cb_cnt( null );
this.read_file( ft.name, ( err, str ) => {
try {
const data = yaml.safeLoad( str.toString() );
res.push( { name: path.join( dir, name ), data } );
} catch ( e ) {
this.error( `Error:${ path.join( dir, name ) }:${ e }` );
}
cb_cnt( null );
} );
} );
}, err => cb_dir( false ) );
} );
} );
}, ( err: boolean ) => {
if ( err )
return done( err );
const out = this.new_build_file( `concat-yaml`, ".json", null, ( err, out ) => {
if ( err ) return done( true );
this.write_file( out, JSON.stringify( res ), ( err ) => {
if ( err ) return done( true );
this.outputs = [ out ];
done( false );
} );
} );
} );
}
示例5: function
fs.readdir(folder, function (err, files) {
if (err) {
callback(err);
return;
}
async.forEachSeries(files,
function (item, done) {
var pluginPath = path.join(folder, item);
ctx.info('inspecting ' + pluginPath);
if (path.extname(pluginPath) === '.js') {
try {
var plugin = require(pluginPath);
// ensure plugin - has name and title functions
if (isFunction(plugin.pluginName) && isFunction(plugin.pluginTitle)) {
ctx.info('Found plugin: ' + plugin.pluginName() + ' @ ' + pluginPath);
if (isFunction(plugin.beforeJob)) {
plugin.beforeId = uuid.v1();
plugins['beforeJob'].push(plugin);
}
// one plugin may have implementations of multiple options
if (isFunction(plugin.afterJobPlugins)) {
plugin.afterJobPlugins(jobContext).forEach((option: IPlugin) => {
option.afterId = uuid.v1();
plugins['afterJob'].push(option);
});
}
}
}
catch (ex) {
console.error(ex);
}
}
done();
},
function (err) {
callback(err, plugins);
});
})
示例6: _cleanFiles
private _cleanFiles(callback: (err: any) => void): void {
this.emitter.emit('info', 'Cleaning Files: ' + this.path);
if (!shell.test('-d', this.path)) {
callback(null);
return;
}
var candidates = shell.find(this.path).filter((file) => { return this.ext === '*' || file.endsWith('.' + this.ext); });
var _that = this;
var delCount = 0;
async.forEachSeries(candidates,
function (candidate, done: (err: any) => void) {
fs.stat(candidate, (err, stats) => {
if (err) {
done(null);
return;
}
if (stats.isDirectory()) {
done(null);
return;
}
var fileAgeSeconds = (new Date().getTime() - stats.mtime.getTime()) / 1000;
if (fileAgeSeconds > _that.ageSeconds) {
++delCount;
_that.emitter.emit('deleted', candidate);
shell.rm(candidate);
}
// ignoring errors - log and keep going
done(null);
})
}, function (err) {
_that.emitter.emit('info', 'deleted file count: ' + delCount);
// ignoring errors. log and go
callback(null);
});
}
示例7: cb_cnt
this.read_dir( dir, ( err, content ) => {
if ( err ) return cb_dir( false );
async.forEachSeries( content, ( name, cb_cnt ) => {
// skip if not a .yam file
if ( ! name.toLowerCase().endsWith( ".yaml" ) )
return cb_cnt( null );
// a way to store the dependancy (and potentially handle code generation)
this.get_filtered_target( path.resolve( dir, name ), dir, ( err, ft ) => {
if ( err )
return cb_cnt( null );
this.read_file( ft.name, ( err, str ) => {
try {
const data = yaml.safeLoad( str.toString() );
res.push( { name: path.join( dir, name ), data } );
} catch ( e ) {
this.error( `Error:${ path.join( dir, name ) }:${ e }` );
}
cb_cnt( null );
} );
} );
}, err => cb_dir( false ) );
} );