Grunt:流量控制

时间:2014-11-04 14:14:43

标签: gruntjs grunt-prompt

根据我自己的任务,我使用grunt-prompt来询问布尔值Q,然后根据答案运行或不运行任务。

问题是grunt.task.run()实际上并不运行任务,而是将其添加到队列中。

所以,如果我从自己的任务中做到:

grunt.task.run('prompt:ask');
if (grunt.config('answer')) { 
   grunt.task.run('do:something');
}

当if执行提示任务时,实际上还没有运行......

有推荐的方法吗?

可能是一些语法:

grunt.task.run('prompt:ask').andThen(function(){
   if (grunt.config('answer')) { 
      grunt.task.run('do:something');
   }
})

自我注意:检查grunt从grunt.task.run返回的内容

1 个答案:

答案 0 :(得分:2)

输入答案后,您需要使用then option插件执行代码:

prompt: {
  ask: {
    options: {
      questions: [
        // your question here...
      ],
      then: function(results) {
        if (results[0].whatever) {  // obviously you'll need to update this...
          grunt.task.run('prompt:ask');
        }
      }
    }
  }
}