2014-11-04 106 views
1

從我自己的任務中,我可以使用grunt-prompt來問一個布爾值Q,然後根據回答運行或不運行任務。Grunt:流量控制

問題是grunt.task.run()實際上並不運行任務,而是將其添加到隊列中。

,所以如果我從我自己做任務:

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

當如果執行任務的提示實際上並沒有尚未運行...

有沒有做到這一點,建議這樣做?

也許有些語法,如:

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

注意自我:檢查什麼咕嚕從grunt.task.run

回答

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'); 
     } 
     } 
    } 
    } 
} 
+0

是的,我知道這是一種選擇,而是一種很自然的聯合國一個... [在這個意義上,我想應用的邏輯是不是提示的一部分任務,而是在更高的水平...] 我可能最終設置'then'函數的控制功能。 我希望咕嚕聲會有某種形式的更好的流量控制機制。 – epeleg 2014-11-05 09:19:17

+0

這是我知道用這個插件與用戶提示結果進行交互的唯一方法。 – jakerella 2014-11-05 11:01:31

+0

如果Q不是關於這個特定的插件怎麼辦?但從第一個任務的任何輸出?在決定運行還是不運行一些第二項任務之前需要考慮這一點? – epeleg 2014-11-06 11:33:07