欢迎来到代码驿站!

NodeJS

当前位置:首页 > 脚本语言 > NodeJS

node.js中使用q.js实现api的promise化

时间:2021-09-13 08:01:56|栏目:NodeJS|点击:

关于啥是promise以及promise解决的是啥问题,敬请体验node的回调异步编码大法,顺带移步http://wiki.commonjs.org/wiki/Promises/A 看看是咋定义的,在此不再赘述。

这里我们看看怎么用q.js 实现node api的promise。

一、万事开始皆为install

复制代码 代码如下:

npm install q

二、标准node style api 的promise化方法

1、使用Q.nfcall

相对于Q.fcall ,Q.nfcall 就是node 的Q.fcall。

复制代码 代码如下:

var FS = require('fs'),
    Q   = require('q'),
    colors = require('colors'),
    file = 'example.txt';
var fsReadFile = Q.nfcall(FS.readFile,file,encoding);
fsReadFile.then(function(result){
console.log((“invoke in nfcall ” + file).red);
console.log(result.green);
},function(error){
console.log(“invoke in nfcall”.red);
console.log(error.toString().red);
}
);

2、使用Q.denodeify

复制代码 代码如下:

var fsReadFile_denodeify = Q.denodeify(FS.readFile);
 
fsReadFile_denodeify(file,encoding).then(function(result){
    console.log("invoke in denodeify".red);
    console.log(result.green)
},function(error){
    console.log("invoke in denodeify".red);
    console.log(error.toString().red);
}
);

3、使用Q.deferd

复制代码 代码如下:

var fsReadFile_deferd = function(file,encoding){
    var deferred = Q.defer();
    FS.readFile(file,encoding,function(error,result){
    if(error){
        deferred.reject(error.toString().red);
    }
    deferred.resolve(result);
});
 
return deferred.promise;
};
 
fsReadFile_deferd(file).then(function(result){
    console.log("invoke in deferd".red);
    console.log(result.toString().green);
},function(error){
    console.log("invoke in deferd".red);
    console.log(error.toString().red);
}
);

4、使用makeNodeResolver()

复制代码 代码如下:

var fsReadFile_makeNodeResolver = function(file,encoding){
    var deferred = Q.defer();
    FS.readFile(file,encoding,deferred.makeNodeResolver());
    return deferred.promise;
};
 
fsReadFile_makeNodeResolver(file,encoding).then(function(result){
    console.log("invoke in makeNodeResolver".red);
    console.log(result.green);
},function(error){
    console.log(error.toString().red);
});

上一篇:nodejs 的 session 简单使用

栏    目:NodeJS

下一篇:node-webkit打包成exe文件被360误报木马的解决方法

本文标题:node.js中使用q.js实现api的promise化

本文地址:http://www.codeinn.net/misctech/174739.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有