1

我试图在 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)

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

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

1 回答 1

1

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

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

ps 我正在使用lodash来遍历集合。

于 2015-09-20T16:20:08.197 回答