DEV Community

Discussion on: How do you handle the disposable IF statements ?

Collapse
 
mazentouati profile image
Mazen Touati

Sounds interesting. There's some great hints here, but a similar solution has to be found for each language as the asynchronous model not available for every one of them. Though, I found out that every disposable IF should be treated separately. As there's no general rule to handle them all in the same way. For example and per your suggestion, the app installation check IMO should happen before starting the server using hooks or something similar. Thanks Mihail !

Collapse
 
qm3ster profile image
Mihail Malo

You could still write this with callbacks, in fact, getUser could be a synchronous callback in some languages, blocking the (green)thread.

The general idea is that you are "scheduling" work for after the asynchronous condition is determined, and keeping a "handle" to the work to know if/when it succeeds. This could be a part of the language runtime, or directly in your application code, where there is more opportunity to retry/batch/time out your pending "tasks".

But yeah, the initialization phase, including critical assertions, is a totally separate story.

Thread Thread
 
mazentouati profile image
Mazen Touati • Edited

In the second paragraph, are you talking about " job queue " ?

Thread Thread
 
qm3ster profile image
Mihail Malo

Yeah.

For example the way you schedule network actions with an
offline-first/optimistic update system like Apollo, the Firebase client, etc.

Chaining on an actual promise of a network request or filling a stack of "tasks" which will begin sending to the network after a "cameOnline" poll or callback fundamentally represents the same idea: Preparing now actions that may run in the future if conditions are right.

Thread Thread
 
mazentouati profile image
Mazen Touati

I see, thanks for sharing your thoughts Mihail 😊