国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

javascript - NodeJS connect模塊use的問題

瀏覽:113日期:2023-08-25 18:20:28

問題描述

初學nodejs,在了不起的NodeJS有這樣一段代碼,通過中間件,實現代碼請求時間過長的控制臺打印

//request-time.jsmodule.exports = function(opts){ var time = opts.time||100; return function(req,res,next){var timer = setTimeout(function(){ console.log(req.method + ' , ' + req.url + ' , too long!');},time);var end = res.end;res.end = function(chunk,encoding){ res.end = end;// res.end(chunk,encoding);//直接end(chunk,encoding)會出錯 clearTimeout(timer);};next(); }}

注釋的部分就是本人的疑問,猜測是end里有this的一些東西,不知道理解對不對

問題解答

回答1:

閉包” 一詞來源于以下兩者的結合:要執行的代碼塊(由于自由變量被包含在代碼塊中,這些自由變量以及它們引用的對象沒有被釋放)和為自由變量提供綁定的計算環境(作用域) ---百度百科

先說下閉包概念

你的理解沒錯javascript - NodeJS connect模塊use的問題,這個是驗證過程,原因是因為如果你直接調用end,這個end是因為這個閉包強行留下來的,所以會自動綁定計算機環境,所以這是后他的this就是Window,所以直接調用end會出錯

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 咸宁市| 嘉峪关市| 包头市| 乌鲁木齐县| 永丰县| 大洼县| 岫岩| 会昌县| 茶陵县| 韶关市| 澄江县| 水城县| 大竹县| 兴文县| 四会市| 海盐县| 阿尔山市| 穆棱市| 承德县| 来凤县| 泽库县| 庆安县| 武陟县| 泾川县| 固镇县| 繁昌县| 南华县| 玉山县| 天柱县| 囊谦县| 四川省| 高州市| 桃源县| 辉县市| 炉霍县| 浦东新区| 广丰县| 文成县| 阿拉尔市| 宁明县| 东光县|