[CoffeeScript]使用Yield功能
CoffeeScript 1.9 开始提供了类似ES6的yield关键字。 自己结合co和bluebird做了个试验。
co -- http://npmjs.org/package/co -- for generator
bluebird -- https://www.npmjs.com/package/bluebird for Promise
co = require 'co' Promise = require 'bluebird'msg = "good" func1 = () ->new Promise((resolve)->setTimeout(()->console.log "func1"resolve({a:10,b:2}), 1000))func2 = (opts) ->{a,b}= optsnew Promise((resolve, reject)->setTimeout(()->console.log "func2", a, bconsole.log msgresolve(a * b * 2), 1000))func3 = (r)->new Promise((resolve)->console.log "the result is #{r}"resolve()) func4 = ()->new Promise (resolve)->console.log "done"resolve()calc1= (r) ->yield func3(r)yield func4()calc = ()->opts = yield func1()r = yield func2(opts)yield calc1(r) # yield func3(r) # yield func4()co(calc)
转载于:https://www.cnblogs.com/buhaiqing/p/5385435.html
[CoffeeScript]使用Yield功能相关推荐
- 了解多线程中的yield
2019独角兽企业重金招聘Python工程师标准>>> 最近在学习多线程这一块,发现里面有好多让人产生误区的地方,今天我来分析下java多线程中的yield功能,希望其他朋友也可以从 ...
- [转载] 【零基础学爬虫】python中的yield详解
参考链接: 什么时候在Python中使用yield而不是return python中的yield功能比较强大,什么意思呢?如果一个函数f内使用了yield关键词,那么该函数就可以这样使用: for i ...
- java登录功能多线程_java之多线程
线程的生命周期: 当线程被创建并被启动时,它既不是一启动就进入了执行状态,在线程的生命周期中,它要经过new(新建),就绪(Runnable),运行(Running),阻塞(Blocked),dead ...
- 【Python】一篇文章读懂yield基本用法
这一次,田辛老师想通俗易懂地解释一下Python中的yield功能. 本文要说明以下四个问题: yield是什么 什么是迭代器和生成器 yield的基本用法 如何使用yield from 用真正简单的 ...
- python线程池模块_python并发编程之进程池,线程池,协程
需要注意一下 不能无限的开进程,不能无限的开线程 最常用的就是开进程池,开线程池.其中回调函数非常重要 回调函数其实可以作为一种编程思想,谁好了谁就去掉 只要你用并发,就会有锁的问题,但是你不能一直去 ...
- Python(迭代、三元表达式、列表生成、生成器、迭代器)
迭代 什么是迭代1 重复2 下次重复一定是基于上一次的结果而来 如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration). 在 ...
- 使用Stream API的类Java产量
几种编程语言(例如Ruby或Python等)提供yield命令. 在内存消耗方面,Yield提供了一种有效的方式,可以通过按需生成值来创建一系列值. 有关Python产量的更多信息. 让我们考虑一个需 ...
- python线程池模块_python并发编程之进程池,线程池,协程(Python标准模块--concurrent.futures(并发未来))...
需要注意一下 不能无限的开进程,不能无限的开线程 最常用的就是开进程池,开线程池.其中回调函数非常重要 回调函数其实可以作为一种编程思想,谁好了谁就去掉 只要你用并发,就会有锁的问题,但是你不能一直去 ...
- 生成器案例,#采集日志
生成器: 只要在函数体中看到yield,那么这个函数就是生成器. yield功能: 1:为我们提供了一种自定义迭代器对象的方法 2:yield其实也是一种返回值,他和return的区别就是:他可以返回 ...
最新文章
- [译]Mimic, 轻量级Web Service测试桩
- C#Project不生成.vhost.exe和.pdb文件的方法
- Android ListView 圆角
- nginx中configure脚本支持的常用选项,拍摄自《Nginx高性能Web服务器详解》
- 定时执行程序-Quartz简单实例
- ActiveMQ的安全配置(九)
- [Java基础]File基础
- C语言无符号数运算问题
- 阿里P8架构师谈:数据库、JVM、缓存、SQL等性能调优方法和原则
- visual studio code typescript 防止 import statement 断行
- TensorFlow入门篇(三):MNIST数据集简易分类
- ZED2+ORB_SLAM3
- C++读写ini配置文件
- msdia80.dll是什么文件?msdia80.dll文件缺失怎么修复?
- windows memcached php扩展,Memcached 的学习:windows下php开memcached扩展
- Linux elf可执行文件加密
- 一文告诉你大数据是什么
- 速算24点(C++)
- LeetCode 176 第二高的薪水
- SD卡驱动(基于XS128)
热门文章
- 死锁、EAT、页表、单双缓冲区典型题目及解析
- 7-6 考试座位号 15 分 C语言代码,PAT Basic 1041. 考试座位号(15)(C语言实现)
- Qt_数据库基本操作(未完成)
- mysql undrop_MySQL · 数据恢复 · undrop-for-innodb
- linux如何查看jupyter日志_在Linux服务器上运行Jupyter notebook server教程
- ocx控件 postmessage消息会消失_通过HackerOne漏洞报告学习PostMessage漏洞实战场景中的利用与绕过...
- php不用框架怎么写,php框架不用写sql语句就能调用数据库里表的字段是怎么实现的...
- HDU-2602-Bone Collector(dp)
- ubuntu16.04安装NIVIDIA显卡驱动,cuda8.0,cuDNN6.0以及基于Anaconda安装Tensorflow-GPU
- 亚信安全首推MSP创新型合作伙伴业务模式 助力企业畅享云端快捷服务