司徒正美
司徒正美
co方法只是让参数函数的内部变成一种类似PHP同步环境, 但不方便我们往这个环境传参 因此就有了co.wrap, 这也是koa里面使用的方法 将上面的例子改一下 ``` javascript var co = require("co") var delay = function(a){ return function(fn){ var now = new Date setTimeout(function(){ console.log(a + "--------") fn(null, new Date -...
我们再看koa的核心代码 ``` javascript app.callback = function(){ var mw = [respond].concat(this.middleware); var fn = this.experimental ? compose_es7(mw) : co.wrap(compose(mw)); var self = this; if (!this.listeners('error').length) this.on('error', this.onerror); return function(req, res){ res.statusCode...
``` javascript var co = require("./co") var compose = require("./compose") function *m1(next){ var start = new Date; console.log("start=======1111"); yield next; console.log("end=======1111"); var ms = new Date - start; console.log('%s %s...
改得更像些应该是这样 ``` javascript var co = require("./co") var compose = require("./compose") function *respond(next) { console.log("first !") var last = yield *next; console.log(last+"!") } function *m1(next){ var start = new Date;...
``` javascript var co = require("./co") var compose = require("./compose") function delay(time) { return function(fn) {//这是一个普通函数,使用thunkToPromise setTimeout(function() { fn(null, time)//null表示没有错 }, time) } } co(function* () { var a =...
加入 定时器 ``` javascript var co = require("./co") var compose = require("./compose") function *respond(next) { console.log("first !") var last = yield *next; console.log(last+"!") } function *m1(next){ var start = new...
将一个普通的node异步方法改成可以yield的方法 可以使用以下方式 ``` javascript var helper = function (fn) { return function () { var args = [].slice.call(arguments); var pass; args.push(function () { // 在回调函数中植入收集逻辑 if (pass) { pass.apply(null, arguments);...
串行与并行 ``` javascript var thunkify = require('thunkify'); var co = require('co'); var fs = require('fs'); var readFile = thunkify(fs.readFile); co(function *() { var now = new Date - 0 var...
index https://github.com/koajs/bigpipe-example/tree/master/client https://gemnasium.com/npms/bigpipe-example http://www.jianshu.com/p/12cfa4ba29d4 https://github.com/undoZen/bigpipe-on-node The whole point is to split big task of generating entire HTML into many small tasks ( aka pagelets ). For example assume you want...
http://stackoverflow.com/questions/25646690/koajs-how-to-send-partial-responses