欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

node.js中使用q.js實(shí)現(xiàn)api的promise化

 更新時(shí)間:2014年09月17日 09:40:32   作者:鄉(xiāng)村運(yùn)維  
這篇文章主要介紹了node.js中使用q.js實(shí)現(xiàn)api的promise化,promise一個(gè)標(biāo)準(zhǔn),它描述了異步調(diào)用的返回結(jié)果,包括正確返回結(jié)果和錯誤處理,需要的朋友可以參考下

關(guān)于啥是promise以及promise解決的是啥問題,敬請?bào)w驗(yàn)node的回調(diào)異步編碼大法,順帶移步http://wiki.commonjs.org/wiki/Promises/A 看看是咋定義的,在此不再贅述。

這里我們看看怎么用q.js 實(shí)現(xiàn)node api的promise。

一、萬事開始皆為install

復(fù)制代碼 代碼如下:

npm install q

二、標(biāo)準(zhǔn)node style api 的promise化方法

1、使用Q.nfcall

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

復(fù)制代碼 代碼如下:

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

復(fù)制代碼 代碼如下:

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

復(fù)制代碼 代碼如下:

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()

復(fù)制代碼 代碼如下:

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);
});

相關(guān)文章

  • 使用NODE.JS創(chuàng)建一個(gè)WEBSERVER(服務(wù)器)的步驟

    使用NODE.JS創(chuàng)建一個(gè)WEBSERVER(服務(wù)器)的步驟

    在 node.js 中創(chuàng)建一個(gè)服務(wù)器非常簡單,只需要使用 node.js 為我們提供的 http 模塊及相關(guān) API 即可創(chuàng)建一個(gè)麻雀雖小但五臟俱全的web 服務(wù)器,相比 Java/Python/Ruby 搭建web服務(wù)器的過程簡單的很。本文簡單的講解下實(shí)現(xiàn)步驟
    2021-06-06
  • nodejs中express入門和基礎(chǔ)知識點(diǎn)學(xué)習(xí)

    nodejs中express入門和基礎(chǔ)知識點(diǎn)學(xué)習(xí)

    這篇文章給大家分享了關(guān)于學(xué)習(xí)nodejs中express入門和基礎(chǔ)知識點(diǎn)內(nèi)容,有興趣的朋友們參考下。
    2018-09-09
  • Linux通過yum命令徹底刪除node.js并重新安裝

    Linux通過yum命令徹底刪除node.js并重新安裝

    這篇文章主要介紹了Linux通過yum命令徹底刪除node.js并重新安裝,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2021-11-11
  • DevEco?Studio設(shè)置Nodejs提示路徑只能包含英文、數(shù)字、下劃線等解決辦法

    DevEco?Studio設(shè)置Nodejs提示路徑只能包含英文、數(shù)字、下劃線等解決辦法

    這篇文章主要給大家介紹了關(guān)于DevEco?Studio設(shè)置Nodejs提示路徑只能包含英文、數(shù)字、下劃線等的解決辦法,文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2024-01-01
  • nodejs部署到騰訊云服務(wù)器的實(shí)現(xiàn)(寶塔面板linux系統(tǒng))

    nodejs部署到騰訊云服務(wù)器的實(shí)現(xiàn)(寶塔面板linux系統(tǒng))

    本文主要介紹了nodejs部署到騰訊云服務(wù)器的實(shí)現(xiàn)(寶塔面板linux系統(tǒng)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • NodeJs安裝npm包一直失敗的解決方法

    NodeJs安裝npm包一直失敗的解決方法

    本篇文章主要介紹了NodeJs安裝npm包一直失敗的解決方法。具有很好的參考價(jià)值。下面跟著小編一起來看下吧
    2017-04-04
  • 詳解Nodejs 通過 fs.createWriteStream 保存文件

    詳解Nodejs 通過 fs.createWriteStream 保存文件

    本篇文章主要介紹了Nodejs 通過 fs.createWriteStream 保存文件,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-10-10
  • node.js中的buffer.Buffer.isBuffer方法使用說明

    node.js中的buffer.Buffer.isBuffer方法使用說明

    這篇文章主要介紹了node.js中的buffer.Buffer.isBuffer方法使用說明,本文介紹了buffer.Buffer.isBuffer的方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • NodeJS爬蟲實(shí)例之糗事百科

    NodeJS爬蟲實(shí)例之糗事百科

    本篇文章主要給大家講解了一下用NodeJS學(xué)習(xí)爬蟲,并通過爬糗事百科來講解用法和效果,一起學(xué)習(xí)下吧。
    2017-12-12
  • Node.js進(jìn)程退出的深入理解

    Node.js進(jìn)程退出的深入理解

    NodeJS可以感知和控制自身進(jìn)程的運(yùn)行環(huán)境和狀態(tài),也可以創(chuàng)建子進(jìn)程并與其協(xié)同工作,這使得NodeJS可以把多個(gè)程序組合在一起共同完成某項(xiàng)工作,下面這篇文章主要給大家介紹了關(guān)于Node.js進(jìn)程退出的相關(guān)資料,需要的朋友可以參考下
    2022-04-04

最新評論