nodejs之promise书写规范
2016-04-06 16:29
901 查看
nodejs的特点是异步,nodejs不能等待,如果你实现某件需要等待的事情,你不能停在那里一直等待结果回来,相反,底线是使用回调callback:你定义一个函数,这个函数只有等到结果可用时才能被调用。所以为了解决这种单一的回调模式,我们引入了promise规范
promise是什么,能解决什么问题?
1、promise其实是一个对象,他只有三中状态,处理中、完成和拒绝。
2、一个promise是一个带有".then()"方法的对象,其代表的是一个操作的结果可能还没有或不知道,无论谁访问这个对象,都能够使用".then()"方法加入回调等待操作出现成功结果或失败时的提醒通知。
下面用具体的代码解释:
var Q = require("q");
var Test = {
fun1: function(data){
var deferred = Q.defer();
deferred.resolve(data);
return deferred.promise;
},
fun2: function(data){
var deferred = Q.defer();
deferred.resolve(data + "fun2");
return deferred.promise;
},
fun3: function(data){
var deferred = Q.defer();
deferred.resolve(data + "fun3");
return deferred.promise;
},
};
module.exports = Test;
调用方法
Test.fun1('123').then(Test.fun2).then(Test.fun3).done(function(data){
console.log(data);
});
//输出结果如下:
123fun2fun3
promise是什么,能解决什么问题?
1、promise其实是一个对象,他只有三中状态,处理中、完成和拒绝。
2、一个promise是一个带有".then()"方法的对象,其代表的是一个操作的结果可能还没有或不知道,无论谁访问这个对象,都能够使用".then()"方法加入回调等待操作出现成功结果或失败时的提醒通知。
下面用具体的代码解释:
var Q = require("q");
var Test = {
fun1: function(data){
var deferred = Q.defer();
deferred.resolve(data);
return deferred.promise;
},
fun2: function(data){
var deferred = Q.defer();
deferred.resolve(data + "fun2");
return deferred.promise;
},
fun3: function(data){
var deferred = Q.defer();
deferred.resolve(data + "fun3");
return deferred.promise;
},
};
module.exports = Test;
调用方法
Test.fun1('123').then(Test.fun2).then(Test.fun3).done(function(data){
console.log(data);
});
//输出结果如下:
123fun2fun3
相关文章推荐
- 使用ruby部署工具mina快速部署nodejs应用教程
- Google官方支持的NodeJS访问API,提供后台登录授权
- 浅谈Nodejs观察者模式
- nodejs教程之环境安装及运行
- nodejs中的fiber(纤程)库详解
- 基于NodeJS的前后端分离的思考与实践(五)多终端适配
- 基于NodeJS的前后端分离的思考与实践(二)模版探索
- 实例详解Nodejs 保存 payload 发送过来的文件
- 我的NodeJs学习小结(一)
- Node.js 应用跑得更快 10 个技巧
- nodejs中实现sleep功能实例
- Nodejs异步回调的优雅处理方法
- Windows系统下使用Sublime搭建nodejs环境
- nodejs实现获取某宝商品分类
- nodejs简单实现中英文翻译
- Node.js插件的正确编写方式
- 使用upstart把nodejs应用封装为系统服务实例
- NodeJS Web应用监听sock文件实例
- Nodejs学习笔记之测试驱动
- Nodejs学习笔记之Stream模块