So `task` is a function that returns a promise for a function that should be called when resolved.