国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

node.js實現回調的方法示例

2024-05-06 15:10:34
字體:
來源:轉載
供稿:網友

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

向回調函數傳遞額外的參數

在調用函數中,使用匿名函數中實現需傳遞的參數,再次匿名函數內調用回調函數。

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

在回調中實現閉包

如果某個回調函數需要訪問父函數的作用域的變量,就需要使用閉包,在函數塊內部封裝一個異步調用,并傳入所需要的變量。

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 朗逸

鏈式回調

使用異步函數時,如果兩個函數都在事件隊列上,則無法保證它們的運行順序。解決方法是讓來自異步函數的回調再次調用該函數,直到沒有更多的工作要做,以執行鏈式回調。

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程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 松桃| 易门县| 新乡县| 乐至县| 富锦市| 五莲县| 根河市| 濮阳市| 共和县| 清水县| 平陆县| 民权县| 新郑市| 邵武市| 镇赉县| 房产| 基隆市| 山阳县| 旬邑县| 民县| 墨玉县| 岑溪市| 左权县| 丁青县| 新安县| 新疆| 睢宁县| 丰台区| 滨海县| 东平县| 永登县| 延边| 芦山县| 密山市| 通州市| 东兰县| 吉木萨尔县| 黔江区| 清涧县| 咸阳市| 运城市|