How about adding a `cancel()` to the promise which would stop the selection process?