var readFileThunk = Thunk(fs.readFile); readFileThunk(fileA)(callback); 四、Thunkify 模块 生产环境的转换器,建议使用 Thunkify...$ npm install thunkify 使用方式如下。...var thunkify = require('thunkify'); var fs = require('fs'); var read = thunkify(fs.readFile); read('...(f); ft(1, 2)(console.log); // 3 上面代码中,由于 thunkify 只允许回调函数执行一次,所以只输出一行结果。...var fs = require('fs'); var thunkify = require('thunkify'); var readFile = thunkify(fs.readFile); var
visionmedia/co * 运行环境: 安装 nodejs v0.11.2以上版本, 推荐IDE: Jetbrains WebStorm 8.0 * 依赖的包: 请先 npm install -g co thunkify... request //全局化安装, * 再到本js所在目录下 npm link co thunkify request 引用这些全局安装模块 * 执行: node --harmony co.js ,...(fs.readFile); //如果采用现成的thunkify模块的话, 就不用自己写上面那样的转换器函数了, 省事! ...顾名思义, 它就是现成的转换器函数: var thunkify = require('thunkify'); var request = require('request'); //用于http.request...的包 //转换器:thunkify, 将传统的回调式的函数,转换成可yield的函数 //转换request.get函数 var get = thunkify(request.get); //request.get
Thunkify 模块。...$ npm install thunkify 使用方式如下。...var thunkify = require('thunkify'); var fs = require('fs'); var read = thunkify(fs.readFile); read('...package.json')(function(err, str){ // ... }); Thunkify 的源码与上一节那个简单的转换器非常像。...var fs = require('fs'); var thunkify = require('thunkify'); var readFileThunk = thunkify(fs.readFile)
原生的api是不支持 thunk 化的,所以就有了thunkify这个库帮我们把一些原生 api thunk 化。 为什么要 thunk 化呢?...上面代码中的 Co 和 thunk 都是最简单的实现方式,代码中缺少诸如异常处理,非标准参数,多参数回调等判断,可以参考一下 Co 和 thunkify ,来实现。
这是它能封装异步任务的根本原因 Thunk 函数 Thunk 函数是自动执行 Generator 函数的一种方法 Thunk 函数的定义,它是“传名调用”的一种实现策略,用来替换某个表达式 生产环境的转换器,建议使用 Thunkify
本节演示的代码可参考这里 本节内容概述 一个普通的异步函数 封装成一个thunk函数 thunk函数的特点 使用thunkify库 接下来......使用thunkify库 上面代码的封装,是我们手动来做的,但是没遇到一个情况就需要手动做吗?在这个开源的时代当让不会这样,直接使用第三方的thunkify就好了。...首先要安装npm i thunkify --save,然后在代码的最上方引用const thunkify = require('thunkify')。...const thunk = thunkify(fs.readFile) const readFileThunk = thunk('data1.json', 'utf-8') readFileThunk(...非常简洁 // 定义 Generator const readFileThunk = thunkify(fs.readFile) const gen = function* () { const
let fs = require('fs'); let thunkify = require('thunkify'); let readFileThunk = thunkify(fs.readFile)
},1000) }) })(function(e,v) { console.log(e); console.log(v) }) /* var getThunk = thunk.thunkify
因为 thunk 真的很有用,也存在很多将异步 callback 转换为 thunk 的工具库,比如 thunks 或 node-thunkify ,感兴趣也可以看看。
生成环境建议使用 Thunkify 模块,可以处理更多异常边界情况。
readFileThunk("filename")(function () { console.log("ayayay"); }); 当然,我们只是最小化的实现了通用的Thunk函数,生产环境建议可以使用Thunkify
领取专属 10元无门槛券
手把手带您无忧上云