This is much cleaner -- `_openPromise` is re-used. I don't think it needs to be in `setTimeout()`.