promises: deferring action in a controller