如何在同一闭包中使用多个咕噜咕噜的任务



>我有几个咕噜咕噜的任务在我的MySql数据库上执行操作。

为了公开数据库 ORM,我首先需要实例化它,然后在回调中运行数据库调用。

问题是,由于每个繁琐的任务都是单独运行的,所以我必须为每个任务实例化ORM。

这是我用来实例化数据库的代码片段

例如,假设我正在尝试这样做:

grunt.registerTask('import:cleanUsers', 'Clean the DB', function() {
  var done = this.async();
  var sql = 'delete from user';
  sailsTasksModels.init(function(ontology) {
    ontology.collections.country.query(sql, function(err, results) {
      if (!err) console.log('User table has been emptied');
      done(results);
    });
  });
});
grunt.registerTask('import:cleanRadios', 'Clean the DB', function() {
  var done = this.async();
  var sql = 'delete from radio';
  sailsTasksModels.init(function(ontology) {
    ontology.collections.country.query(sql, function(err, results) {
      if (!err) console.log('Radio table has been emptied');
      done(results);
    });
  });
});
grunt.registerTask('import:cleanCampaigns', 'Clean the DB', function() {
  var done = this.async();
  var sql = 'delete from campaign';
  sailsTasksModels.init(function(ontology) {
    ontology.collections.country.query(sql, function(err, results) {
      if (!err) console.log('Campaign table has been emptied');
      done(results);
    });
  });
});
grunt.registerTask('import:deleteAll', [
  'import:cleanUsers',
  'import:cleanRadios',
  'import:cleanCampaigns'
]);

当运行grunt import:deleteAll时,脚本将在第二个任务上崩溃,告诉我适配器已经被初始化。

所以我的问题是,我如何在同一个 sailsTasksModels.init 回调中运行我的三个任务?

谢谢

一种选择是使用 grunt set:

文档: http://gruntjs.com/api/grunt.config#grunt.config.set

  1. 注册主任务
  2. 在模块的其他文件中设置配置

在我的一个帆.js项目中的例子:https://github.com/ABS-org/we-cdp/blob/master/tasks/config/watch-sass-theme.js#L8

相关内容

  • 没有找到相关文章

最新更新