Node.js實(shí)現(xiàn)鏈?zhǔn)交卣{(diào)
由于異步的關(guān)系,代碼的書寫順序可能和執(zhí)行順序并不一樣,可能想先執(zhí)行A再執(zhí)行B,但由于異步可能B要先于A執(zhí)行.例如在OC中使用AFnetworking請(qǐng)求數(shù)據(jù)然后刷新頁面,由于網(wǎng)絡(luò)請(qǐng)求是用block實(shí)現(xiàn)的異步方法,所以刷新的時(shí)候并沒有數(shù)據(jù),為了解決這個(gè)問題,一般會(huì)在請(qǐng)求響應(yīng)結(jié)束在block中刷新頁面(這就回出現(xiàn)循環(huán)引用的問題,不過node中不會(huì)出現(xiàn)).
上面是OC中異步執(zhí)行中的鏈?zhǔn)交卣{(diào),在node.js中也是使用這樣的方法在回調(diào)中調(diào)用方法來實(shí)現(xiàn)鏈?zhǔn)交卣{(diào)。
function logCar(car,callback)
{
console.log("Saw a %s",car);
process.nextTick(callback);
}
function logCars(cars)
{
var car=cars.pop();
if (cars.length)
{
logCar(car,function(){
logCars(cars);;
});
}
}
var cars = ["Ferrari", "Porsche", "Bugatti",
"Lamborghini", "Aston Martin"];
logCars(cars);輸出結(jié)果:
"C:\Program Files (x86)\JetBrains\WebStorm 11.0.3\bin\runnerw.exe" F:\nodejs\node.exe callback_chain.js
Saw a Aston Martin
Saw a Lamborghini
Saw a Bugatti
Saw a PorscheProcess finished with exit code 0
到此這篇關(guān)于Node.js實(shí)現(xiàn)鏈?zhǔn)交卣{(diào)的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Node.js Continuation Passing Style( CPS與回調(diào))
- Node.js基礎(chǔ)入門之回調(diào)函數(shù)及異步與同步詳解
- 如何將Node.js中的回調(diào)轉(zhuǎn)換為Promise
- Node.js 回調(diào)函數(shù)實(shí)例詳解
- node.js實(shí)現(xiàn)回調(diào)的方法示例
- 深入理解Node.js 事件循環(huán)和回調(diào)函數(shù)
- 剖析Node.js異步編程中的回調(diào)與代碼設(shè)計(jì)模式
- node.js回調(diào)函數(shù)之阻塞調(diào)用與非阻塞調(diào)用
- 我的Node.js學(xué)習(xí)之路(三)--node.js作用、回調(diào)、同步和異步代碼 以及事件循環(huán)
相關(guān)文章
手把手教你使用TypeScript開發(fā)Node.js應(yīng)用
為了減少代碼編寫過程中出現(xiàn)的錯(cuò)誤,以及更好的維護(hù)你的項(xiàng)目,本文將手把手教你配置一個(gè)簡(jiǎn)單的開發(fā)環(huán)境來編寫Node.js的應(yīng)用程序,感興趣的小伙伴們可以參考一下2019-05-05
npm?install安裝失敗報(bào)錯(cuò):The?operation?was?rejected?by?your?
這篇文章主要給大家介紹了關(guān)于npm?install安裝失敗報(bào)錯(cuò):The?operation?was?rejected?by?your?operating?system的相關(guān)資料,文中給出了多種解決方法供大家參考學(xué)習(xí),需要的朋友可以參考下2023-04-04
Node.js中package.json中庫的版本號(hào)(~和^)
這篇文章主要介紹了Node.js中package.json中庫的版本號(hào)(~和^),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-04-04
Node.js使用Streams來處理文件讀寫操作的示例代碼
在Node.js中,Streams 提供了一種高效的方式來處理文件的讀寫操作,特別是對(duì)于大文件或數(shù)據(jù)流,Streams 允許你以流的方式讀寫數(shù)據(jù),這意味著數(shù)據(jù)可以分塊處理,本文介紹了在Node.js中如何使用Streams來處理文件讀寫操作,需要的朋友可以參考下2024-09-09
node.js中的events.emitter.removeAllListeners方法使用說明
這篇文章主要介紹了node.js中的events.emitter.removeAllListeners方法使用說明,本文介紹了events.emitter.removeAllListeners 的方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12
詳解用node-images 打造簡(jiǎn)易圖片服務(wù)器
本篇文章主要介紹了詳解用node-images 打造簡(jiǎn)易圖片服務(wù)器,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-05-05

