Método ‘exec’ no funciona en la tarea ronca

Tengo una tarea que se registró en grunt config:

grunt.registerTask('test_Branches', 'Run Branches check on windows', require('PATH').check); 

Y en mi branch.test.js tengo método check ():

 this.check = function () { 'use strict'; console.log("Execution started\n"); exec('git for-each-ref --sort=-committerdate refs/remotes/origin/ --format='%(committername)', {cwd: currentDir}, function (error, stdout, stderr) { console.log('started 1.1'); if (stderr) { console.log('stderr: ' + stderr + "\n"); } else { console.log("Authors has been received\n"); } if (error !== null) { console.log('Execution command error: ' + error + "\n"); } }); }; 

Pero cuando bash ejecutar mi tarea a través de la línea de comandos con el comando:

 grunt test_Branches 

Tengo:

 C:\PATH>grunt test_Branches Running "test_Branches" task Execution started Done, without errors. 

¿Cuál es el problema con mi método ‘exec’?

La solución para este problema es usar grunt.task.current.async(); Para funciones asíncronas. Como mencionó Jonathan Lonowski, aquí puedes encontrar detalles.