Only retrieve `then` value once.
If resolved with promise, take over its state.

Closes #6.