- 博客(6)
- 资源 (1)
- 收藏
- 关注
原创 ES6-深入理解Generator yield & Koa中间件执行顺序
几个月前写过一篇博客,讲Generator,比较基础。最近总在写ES6,想深入讲讲yield的执行顺序。你可能想问,Generator执行顺序很简单啊,就是调用next()就执行下一个yield后面的代码。很多问题,如果你认为很简单,很可能是你理解不深刻,就像我当初也认为Generator很简单。如果你关心koa中间件的执行顺序也可以接着看看。yield与yield*关于这个话题,你只需要知道四点:
2016-07-15 22:05:08 8491
原创 Co-实现原理分析
generator函数可以理解成一个异步操作的容器,它装着一些异步操作,但并不会在实例化以后立即执行。而co的思想是在恰当的时候执行这些异步操作。那么就需要一种机制,在一个异步操作执行完毕以后通知下一个异步操作开始执行。额,这句话听起来就有点耳熟了。这不就是回调函数或者promise干的事么。确实,co要求generator里yield的是thunk或者promise就是这个道理。thunk就是一种
2016-07-10 20:55:17 3604
原创 Co-使用co自动化执行Generator函数
co是如何工作的co是用来自动执行generator函数的工具。那么,首先你需要知道generator。Generator的好处是可以在定义函数时候就打上“断点”,调用函数时候可以在断点的地方暂停函数的执行。Generator带来的问题是如何控制什么时候进行下一步调用。co就是解决这个问题的。 下面所有代码可以到github上查看源代码。 fs = require('fs'); co = req
2016-07-09 23:06:04 2726
原创 Redux-Provider与connect
Redux使用的基本思路1)定义actions.js,其中包括actions type(字符串常量)、actions creators(返回一个json的函数,返回的这个json就是actions)2)定义reducers.js,包含多个reducer(就是一个函数):(state, action)=>{……return newState};最后通过 combineReducers()将多个red
2016-07-05 13:37:48 6296 2
原创 JavaScript-二进制与二进制数组
在ES5中引入了Blob用于处理二进制。在ES6中引入了ArrayBuffer、TypedArray、DataView用于处理二进制数组。常规的前端操作用,用到二进制的地方不多。但是,当我想处理文件的传输时候,使用二进制进行传输可以更快。在进行异步数据传输(AJAX)时,很可能出现这种场景。BlobBlob(Binary Large Object)对象代表了一段二进制数据,提供了一系列操作接口。其他
2016-07-03 18:09:40 13349
原创 React-为什么要使用虚拟DOM
什么是虚拟DOM(Virtual DOM)首先,解释下虚拟DOM。虚拟DOM保存了真实DOM的层次关系和一些基本属性,与真实DOM一一对应。虚拟DOM的工作原理是:数据 -> 全新的虚拟DOM -> 与上一个状态的虚拟DOM进行diff算法比较,得到一个Patch -> 把这个Patch打到浏览器的DOM上。所以虚拟DOM叫的挺高端,其实就有点类似DocumentFragment,把多次DOM操作做
2016-07-01 20:42:10 6183 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人