6 ms·
This is what i hand in mind whit "manually handing of futures". In this case you have to write Promise1 = f1(); Promise2 = f2(); v1,v2 = await Join(Prom
by raluk 1y ago
This is what i hand in mind whit "manually handing of futures".
In this case you have to write
Promise1 = f1(); Promise2 = f2();
v1,v2 = await Join(Promise1, Promise2);
return v1 + v2
I think this is just too much of synthactic noise.
On the other hand, it is necessary becase some of underlying async calls can be order dependend.
for example
await sock.rec(1) == 'A' && await sock.rec(1) == 'B'
checks that first received socket byte is A and second is B. This is clearly order dependant that can't be executed concurrently out of order.
- jayd16 1y agoI suppose you'd have to make SumAsync(F1(),f2()); Buy it's kind of intractable, isn't it? Your language has to assume order dependency or independency and specify the other. Most seem to stick with lexical ordering implies execution order. I think some use curly brace scoping to break up dependency. I want to say kotlin does something like this. This is why they say async is a viral pattern but IMO that's because you're adding specificity and function coloring is necessary and good.