4 ms·
To elaborate, a nice thing about Iced is the simplicity, even inside flow logic, to refactor async code. # serial for uid, i in uids await load_user ui
by malgorithms 12y ago
To elaborate, a nice thing about Iced is the simplicity, even inside flow logic, to refactor async code.
# serial
for uid, i in uids
await load_user uid, defer users[i]
All I do is move the await:
# concurrent
await for uid, i in uids
load_user uid, defer users[i]
As you can imagine, this would be radically different JavaScript, yet it's (1) easy to read Coffee, (2) easy to refactor, and (3) runs on any browser.
The ES6 stuff is new, and I can't use it because I'm writing for both Node and the browser, but can someone tell me how the above refactor would go?
- aikah 12y agoYou cant really do that in ES6.You'd have to use a co-routine framework (and a "thunkifier") and a generator that would yield some stuff. something like co(function *(){ for(i in uids){ users[i] = yield thunkify(load_users)(uids[i]); } }); While generators are useful, they dont make async code look like sync code.