Depending on the synchronously-executed part of an API that's documented to return a `Promise` seems dangerous, and even before this patch error handling is broken if you try to do so. But I can still implement the synchronous `then()` if you'd like.