support yield to promise from nested callback rewind