Grunt task runner async completion: done() callback vs Promise return precedence when both are used
Integration boundary: Grunt core task runner and plugin async patterns Grunt 1.x documents two valid signals for asynchronous task completion: invoking the done() callback passed to the task function, or returning a Promise that resolves. The documentation does not define which signal takes precedence when a single task function both calls done() synchronous