在 JakeJS 中完成任务之前和之后是否有任何事件 运行 ?

Are there any events to run something before and after a task is completed in JakeJS?

我正在尝试 运行 在 JakeJS 中完成任务之前和之后做一些事情,但我不确定该怎么做。

目前,我需要像这样将函数附加到每个任务,这很乏味。

var complete = function() {
    // Do something when a task is completed
}

task("someTask", function() {
    // Do something
})
.addListener("complete", complete)

task("anotherTask", function() {
    // Do something
})
.addListener("complete", complete)

我可能可以用另一个函数包装任务,但这只是一个丑陋的 hack,所以我想知道我是否可以做这样的事情。

jake.addListener("afterTaskCompleted", function() {
    // Do something when a task is completed
})

Jake 有一个开始事件,所以我所做的是遍历集合并检查它是否是一个 任务;如果是,那么我已将处理程序附加到 completed 事件。

jake.addListener("start", function (e) {
    _.forOwn(jake.Task, function(task, name) {
        if (task.name && task.prereqs && name !== "__root__") {
            task.addListener("complete", function() { console.log() })
        }
    })
})

p.s。我正在使用 lodash 遍历集合。