文档章节

nodejs promise for q.js

别人说我名字很长
 别人说我名字很长
发布于 2014/06/07 09:17
字数 209
阅读 4041
收藏 4

q.js是一个比较不错的异步流程控制工具,今天看了点文档,写了几个dom,零碎的先记下,改日再整理

q.js的npm地址 https://www.npmjs.org/package/q

//Q 的使用一
var preadFile = function(file){
	var deferred = Q.defer();//
	fs.readFile(file, "utf8",function(err,data){			
		if(!err){
			deferred.resolve(data);//成功返回的数据
		}else{
			deferred.reject(err);//失败返回的错误信息
		}			
	});
	return deferred.promise;//必须返回这个
}

preadFile("foo.json").then(function (data) {//then方法有两个参数(成功回调,失败回调)
    console.log(data);
}, function (error) {	   
    console.error(error);
});


//Q 的 all组合方法(你可以把一系列promises到整个promises中)
function test(value) {
    return Q.delay(value, 1000);//延迟1秒
}

Q.all([
    test(10),//执行三个函数
    test(20),
    test(30)
])
.spread(function (x, y,z) {//三个函数返回的三个值
    console.log(x, y,z);
    return x+y+z;
})
.done(function(str){//完成前面的后执行
	console.log(str)
});



© 著作权归作者所有

共有 人打赏支持
别人说我名字很长
粉丝 55
博文 253
码字总数 102755
作品 0
济南
程序员
為什麼 Node.js 不適合大型和商業專案?

JavaScript 和 Node.js 一直都是這幾年的話題,無論是前端還是後端,到處都可見 JavaScript,就好像爬滿了你全身上下,他們不斷地對你說道「嘿!老兄!快來用我吧!」。 為什麼 Node.js 會這...

临江仙卜算子
05/25
0
0
DoraCMS本地路径不存在的错误

Error: Failed to lookup view "E:studynodejsDoraCMS-master/views/web/temp/doraGallery/public/do500" in views directory "E:studynodejsDoraCMS-masterviews" at EventEmitter.app.rend......

kisongo
2016/02/19
138
1
初识JavaScript Promises之二

初始JavaScript Promises之二 上一篇我们初步学习了JavaScript Promises,本篇将介绍Promise如何优雅地进行错误处理以及提升操作node.js风格1的异步方法的逼格,没错就是使用promisify2。 异...

梵高
2014/07/15
0
0
Node.js express 之mongoose 从异步回调函数返回值,类似于同步

Node.js是很好,异步回调模式返回值让我头疼不已啊,今日还是写下今天学习的成果,起由是因为在使用mongoose查询的时候,多个查询相互依赖会层层嵌套,看起来N不爽,我们可以使用并行查询完毕...

造化玉碟
2013/12/23
0
4
【javascript】Promise/A+ 规范简单实现 异步流程控制思想

——基于es6:Promise/A+ 规范简单实现 异步流程控制思想 前言:   nodejs强大的异步处理能力使得它在服务器端大放异彩,基于它的应用不断的增加,但是异步随之带来的嵌套、难以理解的代码...

grootzhang
2017/06/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Minifilter的动态安装、加载及卸载

MINIFILTER框架的文件系统过滤驱动,无法使用的CreateService和OpenService进行动态加载。 看了一下,使用Inf文件安装Minifilter驱动的方式是在注册表驱动服务项下比传统驱动多创建了Instanc...

simpower
19分钟前
0
0
idea新建springCloud项目(6)- Config Server使用

1.在IDEA新建springCloud项目-Config Server 修改版本,和之前建的eureka项目版本一致,修改完记得刷新: 删除掉不需要的文件: 2.把Config S 服务注册到eureka上去,配置git地址,启动项目 ...

monroeCode
24分钟前
3
0
大数据可视化项目开发总纲

第1章 开发文档总纲 1.1 开发工具清单 名称 版本 备注 Pentaho-bi server pentaho-server-ce-7.1 Pentaho Cde为其内置工具 Pentaho-prd pentaho-prd-ce-7.1 Pentaho Report Designer报表工具...

ZhangLG
24分钟前
2
0
pip安装超时问题

pip3 install --default-timeout=100 tensorflow 设置为100秒 参考: User Guide How to solve ReadTimeoutError: HTTPSConnectionPool(host='pypi.python.org', port=443) with pip?......

亚林瓜子
26分钟前
0
0
fragment 旋转时保持当前实例

设备旋转时保存Fragment的交互状态: setRetainInstance(true);

zdglf
29分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部