Promises return self on when() and watch()