异步函数通过Thunk话在generator中自动执行
2017-12-22 15:58
274 查看
'use strict' const fs = require('fs'); //将一个异步函数转换为Thunk型函数 var toThunk = function(fun){//参数一个异步函数 return function(...args){ return function(callback){ fun.call(this,...args,callback); } } } function f(a,fun){ fun(a); } toThunk(f)('23')(console.log); var readFileThunk = toThunk(fs.readFile); var reads = function * (){ let data1 = yield readFileThunk('./c3.js'); console.log(data1.toString()); let data2 = yield readFileThunk('./c9.js'); console.log(data2.toString()); return 'over'; } //下面函数执行自动执行generator函数 function run(f){ var gen = f(); function next(err,data){ var result = gen.next(data); //将异步执行的结果返回给genetator函数 //generator函数继续执行 //遇到yield返回其后的表达式 if (result.done) { console.log(result.value); return; } result.value(next); } next(); } run(reads);
相关文章推荐
- 模仿TMALL搜索,下拉提示 优化 用户keypress停顿200毫秒间隔时,在执行异步取数据操作 通过underscore的函数debounce来实现
- C# 通过委托+异步的方式约束函数的执行超时时间
- 在网页中JS函数自动执行常用三种方法
- 异步函数顺序执行的实现
- C#通过函数名字符串执行相应的函数
- Promise 异步函数顺序执行
- jquery bind 带参数函数 自动执行
- 自动执行函数
- Ajax异步的回调函数执行了多遍
- 把JScript函数模拟为"异步执行"方式
- ajax请求为异步操作时,返回的数据不会被并列函数执行
- 页面加载完成后自动执行一个方法函数的JQ、JS方法
- linux c之通过popen和pclose函数创建管道执行shell 运行命令使用总结
- 通过mybatis工具generatorConfig.xml自动生成实体,DAO,映射文件
- JS函数自动执行
- objective-c 等待多个异步函数完成后,再执行某段代码--GCD Group 的使用
- Source Insight中通过编辑宏实现对函数头和文件头的自动添加
- 通过maven 使用Mybatis generator自动生成代码
- 每隔一秒自动执行函数(JavaScript)
- Generator 函数的异步应用