promises icon indicating copy to clipboard operation
promises copied to clipboard

How to block until promise completes?

Open ericsonggg opened this issue 4 years ago • 3 comments

I have a use case that needs to use Promises, but the old calling code is synchronous. In Swift, is there a way to block the synchronous caller to wait for the promise to finish? I don't think I can use a custom dispatch queue since it needs to execute on the main thread.

Callback methods unfortunately do not work since the promise needs to start and complete at the middle of a long chain of synchronous commands.

ericsonggg avatar Oct 07 '21 16:10 ericsonggg

Hi Eric, you can try awaitPromise or that https://github.com/google/promises/blob/master/g3doc/index.md#awaitpromise

shoumikhin avatar Oct 07 '21 16:10 shoumikhin

Is there a different import for awaitPromise? It seems to not be included in import Promises

ericsonggg avatar Oct 07 '21 17:10 ericsonggg

also, is awaitPromise only usable from within another Promise? If I'm executing code on the main thread, I'd like to block that immediately for a return from a promise on a different thread. If I have to create a new Promise on main to block on an existing promise, that new Promise will not be able to execute until all the main thread processing is complete

ericsonggg avatar Oct 07 '21 17:10 ericsonggg