promise
乙個標準,它描述了非同步呼叫的返回結果,包括正確返回結果和錯誤處理。關於詳細的說明文件可以參考promises/a+。目前實現promise
標準的模組有很多,如q、bluebird和deferred,下面我們以q為例,介紹一下promise
在nodejs
中的使用方法。
我查詢了關於promise的使用,其中最好用的就是q.js了,個人覺得。當然還有promise.js,有興趣的朋友可以研究一下,這裡主要說一下q.js的用法。
npm install q1、使用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...