Lightning talk. How Generators and Co can make asynchronous code look better. Where to use it - from Co to Koa.
yield@krzychukula
View Slide
function(){getUsername(function(err, username){getUser(username, function(err, user){//use username and user})})}
function(){getUsername().then(function (username) {return [username, getUser(username)];}).spread(function (username, user) {//use username and user});}
co(function *(){var username = yield getUsername()var user = yield getUser(username)//use username and user})
Generators
Co
co(function *(){var username = “janek”var user = yield getUser(username)//use username and user})
co(function *(){var username = “janek”var user = {id:”123”}//use username and user})
Koa
var koa = require('koa');var app = koa();app.use(function *(){this.body = 'Hello World';});app.listen(3000);
function *list() {var res = yield books.find({});this.body = res;}
nvm install v4
Play with it!
Thanks!krzychukula.blogspot.com