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

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

本文关键字:运行 事件 任何 是否 任务 JakeJS 之后      更新时间:2023-09-26

我试图在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有一个start事件,所以我所做的是遍历集合并检查它是否为任务;如果是,那么我已经将处理程序附加到已完成的事件。

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

注。我使用lodash来遍历集合