`
换个号韩国红果果
  • 浏览: 48366 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类

nodejs once 模块

阅读更多
module once   模块主要功能是为了使得回调只会执行一次 非常适合于只需要执行一次的函数
  var wrappy = require('wrappy')
module.exports = wrappy(once)
//执行一次后 在函数的原型上定义一个once 方法,
once.proto = once(function () {
  Object.defineProperty(Function.prototype, 'once', {
    value: function () {
      return once(this)
    },
    configurable: true
  })
})

function once (fn) {
  var f = function () {
//  再次运行的话 返回 cb上一次的返回值。
    if (f.called) return f.value
    f.called = true
    return f.value = fn.apply(this, arguments)
  }
  f.called = false
  return f
}

分享到:
评论

相关推荐

    跟我学Nodejs(二)--- Node.js事件模块

    Node.js事件模块还支持一次性监听器的概念,通过EventEmitter类的once方法可以实现。一旦监听器被触发,它会自动从事件监听器列表中移除。这对于那些只需执行一次的任务非常有用,比如初始化设置或仅需执行一次的...

    nodejs手册中文版

    - **emitter.once(event, listener)**:添加一个只触发一次的事件监听器。 - **emitter.removeListener(event, listener)**:移除一个事件监听器。 - **emitter.removeAllListeners(event)**:移除所有的事件监听...

    NODEjs API文档

    ### NODEjs API文档 #### 概述 本文档旨在为Node.js开发者提供全面且详细的API指南,涵盖了Node.js的核心功能、模块加载机制、全局对象、定时器、核心及文件模块等重要方面。通过深入理解这些内容,开发者可以更加...

    nodejs手册中文版.pdf

    - emitter.once(event, listener):添加只执行一次的监听器。 - emitter.removeListener(event, listener):移除监听器。 - emitter.removeAllListeners(event):移除某个事件的所有监听器。 - emitter....

    NodeJS文档

    ### NodeJS文档知识点详解 #### 概要 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。它使开发人员能够使用 JavaScript 编写服务端应用程序。Node.js 利用非阻塞 I/O 和事件驱动架构来提供高效、可...

    Node.js-opencv4nodejs-用于node.js的异步OpenCV3.xAPI

    借助OpenCV的DNN模块,`opencv4nodejs`支持加载和执行预先训练的深度学习模型,如VGG、ResNet、YOLO(You Only Look Once)等。这些模型可以用于图像分类、目标检测、语义分割等任务。例如,你可以利用YOLO模型实时...

    Nodejs和浏览器的最小事件库

    6. **模块化**:在Node.js中,可能采用了CommonJS或ES6模块系统,使得代码可以被其他模块导入和使用。 7. **浏览器兼容性**:为了在不同浏览器中运行,这个库可能已经处理了跨浏览器兼容性问题。 8. **API设计**:...

    nodejs 简单介绍

    - 一次编写,到处运行(Write Once, Run Everywhere) - 适合构建高并发应用 缺点: - 单线程模型可能导致CPU密集型任务处理能力不足 - 错误处理较为复杂,容易出现回调地狱 - 不适合计算密集型任务 总之,Node.js...

    Nodejs概述

    - `once`: 添加只触发一次的事件监听器。 - `removeListener`: 移除事件监听器。 - `listeners`: 获取事件的所有监听器数组。 #### 九、其他重要模块 1. **process模块**: 提供了与进程相关的API,包括进程信息...

    nodejs pdf

    - **emitter.once(event, listener)**: 添加一次性的监听器。 - **emitter.removeListener(event, listener)**: 移除监听器。 - **emitter.removeAllListeners(event)**: 移除所有监听器。 - **emitter....

    NodeJS手册中文版.pdf (免积分)

    - **`emitter.once(event, listener)`**:添加一次性监听器。 - **`emitter.removeListener(event, listener)`**:移除已添加的监听器。 - **`emitter.removeAllListeners(event)`**:移除所有监听器。 - **`...

    NodeJS应用开发自测试卷2.docx

    NodeJS 应用开发自测试卷 2 变量命名规则 在 JavaScript 中,变量命名规则要求变量名必须以字母或下划线开头,中间可以是数字、字母或下划线,且不能包含空格或加号、减号等符号。此外,JavaScript 的变量名是严格...

    Node.js-一个基于EventBus的能在进程间发送和接收event的库

    例如,你可以使用`on`、`emit`和`once`等方法来监听、触发和一次性监听事件。 使用HermesEventBus时,你需要在每个进程中实例化一个EventBus,并在它们之间共享相同的事件名称。当在一个进程中`emit`一个事件时,...

    node-constant-contact:用于恒定联系API v2(JSON)的NodeJS客户端API

    恒定联系NodeJS客户端 这个模块是非常阿尔法的。 我保证有很多错误。 拉取请求非常受欢迎。 安装 npm install constant-contact 用法 var ConstantContact = require('constant-contact'); var auth = new ...

    chatapp-with-nodejs

    React Native的核心理念是"Learn once, write anywhere",即学习一次,到处编写。这意味着开发者可以用JavaScript和React的语法编写代码,同时享受到接近原生应用的性能。React Native的组件化模型使得UI设计变得...

    Node.js检测端口(port)是否被占用的简单示例

    我们可以利用这个模块来检查端口的使用情况。以下是一个名为`probe`的函数,它尝试创建一个服务器监听指定的端口,并通过回调函数报告结果: ```javascript const net = require('net'); function probe(port, ...

    Node.js-Eventbus3.0简单使用适合初学者使用

    在Node.js开发过程中,有时候我们需要在不同的模块之间传递事件,实现解耦合和高效通信。这就是EventBus(事件总线)的概念,它模仿了Android中的EventBus库,提供了一个方便、轻量级的事件发布/订阅机制。本文将...

    events:事件NodeJS包的直接替换

    标题中的"events:事件NodeJS包的直接替换"指的是这个库,它允许在不支持原生`EventEmitter`的环境中使用类似的事件功能。 `events`库是Node.js核心模块的一个polyfill(填充),它的主要目标是为那些不完全支持...

Global site tag (gtag.js) - Google Analytics