最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

node.js實現(xiàn)回調(diào)的方法示例

 更新時間:2017年03月01日 11:56:27   作者:stavencsdn  
這篇文章主要介紹了node.js實現(xiàn)回調(diào)的方法,結(jié)合實例形式分析了node.js實現(xiàn)向回調(diào)函數(shù)傳遞參數(shù)、閉包的使用及鏈?zhǔn)交卣{(diào)相關(guān)操作技巧,需要的朋友可以參考下

本文實例講述了node.js實現(xiàn)回調(diào)的方法。分享給大家供大家參考,具體如下:

向回調(diào)函數(shù)傳遞額外的參數(shù)

在調(diào)用函數(shù)中,使用匿名函數(shù)中實現(xiàn)需傳遞的參數(shù),再次匿名函數(shù)內(nèi)調(diào)用回調(diào)函數(shù)。

var events = require("events");
function CarShow() {
  events.EventEmitter.call(this);
  this.seeCar = function (make) {
    this.emit('sawCar', make);
  }
}
CarShow.prototype.__proto__ = events.EventEmitter.prototype;
var show = new CarShow();
function logCar(make) {
  console.log("Saw a "+make);
}
function logColorCar(make, color) {
  console.log("Saw a %s %s ", color, make);
}
show.on("sawCar", logCar);
show.on("sawCar", function (make) {
  var colors = ["red", "blue", "black", "pink", "green"];
  var color = colors[Math.floor(Math.random()*3)];
  logColorCar(make, color);
});
show.seeCar("Ferrari");
show.seeCar("Porsche");
show.seeCar("Bugatti");

在回調(diào)中實現(xiàn)閉包

如果某個回調(diào)函數(shù)需要訪問父函數(shù)的作用域的變量,就需要使用閉包,在函數(shù)塊內(nèi)部封裝一個異步調(diào)用,并傳入所需要的變量。

function logCar(logMsg, callback) {
  process.nextTick(function () {
    callback(logMsg);
  });
}
var cars = ["獵豹", "捷達", "朗逸"];
for(var idx in cars){
  var msg = "Saw a "+cars[idx];
  logCar(msg, function () {
    console.log("Normal Callback "+ msg);
  });
}
for(var idx in cars){
  var msg = "Saw a "+cars[idx];
  (function (msg) {
    logCar(msg, function () {
      console.log("Closure Callback "+ msg);
    })
  })(msg);
}
//Normal Callback Saw a 朗逸
//Normal Callback Saw a 朗逸
//Normal Callback Saw a 朗逸
//Closure Callback Saw a 獵豹
//Closure Callback Saw a 捷達
//Closure Callback Saw a 朗逸

鏈?zhǔn)交卣{(diào)

使用異步函數(shù)時,如果兩個函數(shù)都在事件隊列上,則無法保證它們的運行順序。解決方法是讓來自異步函數(shù)的回調(diào)再次調(diào)用該函數(shù),直到?jīng)]有更多的工作要做,以執(zhí)行鏈?zhǔn)交卣{(diào)。

function logCar(car, callback) {
  console.log("Saw a %$", car);
  if(cars.length){
    process.nextTick(function () {
      callback();
    });
  }
}
function logCars(cars) {
  var car = cars.pop();
  logCar(car, function () {
    logCars(cars);
  });
}
var cars = ["獵豹", "捷達", "朗逸"];
logCars(cars);

希望本文所述對大家nodejs程序設(shè)計有所幫助。

相關(guān)文章

  • 新版Node.js內(nèi)置支持.env文件使用詳解

    新版Node.js內(nèi)置支持.env文件使用詳解

    這篇文章主要為大家介紹了新版Node.js內(nèi)置支持.env文件使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • 淺談Nodejs應(yīng)用主文件index.js

    淺談Nodejs應(yīng)用主文件index.js

    這篇文章主要介紹了淺談Nodejs應(yīng)用主文件index.js的相關(guān)資料,需要的朋友可以參考下
    2016-08-08
  • Node.js實現(xiàn)發(fā)送郵件功能

    Node.js實現(xiàn)發(fā)送郵件功能

    這篇文章主要為大家詳細介紹了Node.js實現(xiàn)發(fā)送郵件功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Lua表達式和控制結(jié)構(gòu)學(xué)習(xí)筆記

    Lua表達式和控制結(jié)構(gòu)學(xué)習(xí)筆記

    這篇文章主要介紹了Lua表達式和控制結(jié)構(gòu)學(xué)習(xí)筆記,本文講解了算術(shù)操作符、關(guān)系操作符、邏輯操作符、局部變量與作用域、控制結(jié)構(gòu)等內(nèi)容,需要的朋友可以參考下
    2014-12-12
  • 基于NodeJS的前后端分離的思考與實踐(四)安全問題解決方案

    基于NodeJS的前后端分離的思考與實踐(四)安全問題解決方案

    本文就在前后端分離模式的架構(gòu)下,針對前端在Web開發(fā)中,所遇到的安全問題以及應(yīng)對措施和注意事項,并提出解決方案。
    2014-09-09
  • NodeJS實現(xiàn)一個聊天室功能

    NodeJS實現(xiàn)一個聊天室功能

    這篇文章主要介紹了NodeJS實現(xiàn)一個聊天室功能,本文實例截圖相結(jié)合給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11
  • 推薦 21 款優(yōu)秀的高性能 Node.js 開發(fā)框架

    推薦 21 款優(yōu)秀的高性能 Node.js 開發(fā)框架

    Node.js是JavaScript中最為流行的框架之一,易于創(chuàng)建可擴展的Web應(yīng)用。Node.js包含不同類型框架,包括MVC, full-stack,REST API以及Generators。借助這些框架使Node.js更加易于使用,它還支持眾多特性功能,只需幾個步驟就可快速搭建強大的Web應(yīng)用。本文為大家推薦21款
    2014-08-08
  • NodeJS使用JWT跨域身份驗證方案詳解

    NodeJS使用JWT跨域身份驗證方案詳解

    JWT是為了在網(wǎng)絡(luò)應(yīng)用環(huán)境間傳遞聲明而執(zhí)行的一種基于JSON的開放標(biāo)準(zhǔn),其組成部分為Header、Payload、Signature.Payload部分才是真正的用戶信息,它是用戶信息經(jīng)過加密之后生成的字符串,Header和Signature是安全性相關(guān)的部分,只是為了保證token的安全性
    2023-02-02
  • nodejs的路徑問題的解決

    nodejs的路徑問題的解決

    這篇文章主要介紹了nodejs的路徑問題的解決,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • 理解Koa2中的async&await的用法

    理解Koa2中的async&await的用法

    這篇文章主要介紹了理解Koa2中的async&await的用法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02

最新評論

仙游县| 贺州市| 司法| 望城县| 乌苏市| 铜鼓县| 清镇市| 勐海县| 双江| 蛟河市| 平定县| 洮南市| 东丰县| 安达市| 淮安市| 溧阳市| 乐都县| 玛沁县| 南城县| 宁德市| 调兵山市| 荣成市| 容城县| 扎囊县| 睢宁县| 贡嘎县| 大足县| 泗水县| 宁陕县| 巩留县| 土默特右旗| 新郑市| 岳池县| 秦皇岛市| 达孜县| 鄂托克旗| 天等县| 丰台区| 伊金霍洛旗| 京山县| 凤山县|