从pyhton的生成器到js的生成器
说起这个generator
啊 本不是js的东西 而是从其他语言中借鉴来的 当初初es6标准的时候想必大家都看过了 也都知道所谓生成器 但是估计大家和我一样 可能从来也没用过吧 最大的用处估计就是在async/await
实现之前来替代的处理异步吧 比如koajs1.x
但是这并不是generator
本身应该的正确用法 如果你是generator
你心里会怎么想 本来我估计也用不到这东西 但是最近我不是后来去写了python嘛 也终于在一次认识到了这个东西 然后再次从js的角度看待generator
首先来个例子 redis中每个用户有一个物品列表list user:$userId:items
每个物品有物品详情hashset item:$itemId
现在需要遍历所有物品 为了减轻内存负担 所以要一条一条取
js 回调参数 内部回调函数版
1 | function getAllItem(userId, callback){ |
这个版本因为整个函数都是异步的 获取所有物品后再执行后面的过程
这个操作是没法处理了 需要对回调参数函数进行再次封装 即使内部换成Promise
也是一样的