grunt.registerTask中的异步任务

use*_*980 2 gruntjs karma-runner

我需要调用两个函数grunt.registerTask,但第二个函数必须在第一个函数完成后调用.

所以我想知道我们是否可以使用回调或承诺或其他异步机制grunt.registerTask.

(更具体地说,我需要在我的第一个函数调用中启动业力,并在第二个函数调用中运行业力(执行初始单元测试).但是为了运行业力,我需要先启动它.这就是我的意思我失踪了.)

use*_*980 7

我有这个:

grunt.registerTask("name_of_task", ["task_a", "task_b", "task_c"]);
Run Code Online (Sandbox Code Playgroud)

并且"task_b"必须在"task_a"完成后执行.问题是"task_a"是异步的,并立即返回,所以我需要一种方法让"task_a"几秒钟来执行.

解决方案:

grunt.registerTask("name_of_task", ["task_a", "task_b:proxy", "task_c"]);

grunt.registerTask("task_b:proxy", "task_b description", function () {
        var done = this.async();

        setTimeout(function () {
            grunt.task.run("task_b");
            done();
        }, 2000);
    });
};
Run Code Online (Sandbox Code Playgroud)