nodejs的非同步呼叫

2021-07-25 12:49:58 字數 1831 閱讀 7375

promise乙個標準,它描述了非同步呼叫的返回結果,包括正確返回結果和錯誤處理。關於詳細的說明文件可以參考promises/a+。目前實現promise標準的模組有很多,如q、bluebird和deferred,下面我們以q為例,介紹一下promisenodejs中的使用方法。

我查詢了關於promise的使用,其中最好用的就是q.js了,個人覺得。當然還有promise.js,有興趣的朋友可以研究一下,這裡主要說一下q.js的用法。

npm install q

1、使用q.nfcall

相對於q.fcall ,q.nfcall 就是node 的q.fcall。

varfs =require('fs'),
q   =require('q'),
colors =require('colors'),
file = 'example.txt';
varfsreadfile = q.nfcall(fs.readfile,file,encoding);
fsreadfile.then(function(result),function(error) 

);q.fcall(function () )

.then(function(value2))

.then(function (value3) )

.then(function (value4) )

.then(function (value4) )

.catch(function (error) )

.done();

2使用q.denodeify

var fsreadfile_denodeify = q.denodeify(fs.readfile);
fsreadfile_denodeify(file,encoding).then(function(result),function(error)
);
3、使用q.deferd

varfsreadfile_deferd =function(file,encoding)
deferred.resolve(result);
});
returndeferred.promise;
};
fsreadfile_deferd(file).then(function(result),function(error)
);
4、使用makenoderesolver()

varfsreadfile_makenoderesolver =function(file,encoding);
fsreadfile_makenoderesolver(file,encoding).then(function(result),function(error));

nodejs中for迴圈和非同步呼叫的那些坑

在nodejs中for迴圈中是不能巢狀使用非同步呼叫的,就像下面的 我們定義乙個post請求,用於接受前端傳送來的檔案,然後使用for迴圈對目錄下的一些檔案依次做一些非同步呼叫事情 使用fs的stat router.post uploadfile function req,res for let i...

同步呼叫與非同步呼叫

一 什麼是同步呼叫與非同步呼叫 定義 1 同步就是整個處理過程順序執行,當各個過程都執行完畢,並返回結果。2 非同步呼叫則是只是傳送了呼叫的指令,呼叫者無需等待被呼叫的方法完全執行完畢 而是繼續執行下面的流程。例如,在某個呼叫中,需要順序呼叫 a,b,c三個過程方法 如他們都是同步呼叫,則需要將他們...

JQ 非同步呼叫

請求 test.php 網頁,忽略返回值。jquery 程式 get test.php 請求 test.php 網頁,傳送2個引數,忽略返回值。jquery 程式 get test.php 顯示 test.php 返回值 html 或 xml,取決於返回值 jquery 程式 get test.ph...