Once 是我最习惯的模块,它展示了几乎所有的我书写的通过issac Schlueter创建的应用。

原理很简单,Once使用各类一个函数且返回了一个函数,你可以调用这个函数,但是只能调用一次。如果你想调用多次,子函数的调用将不会受理。

var once = require(‘once’)

function myAPI (cb) {
cb = once(cb)
// my code
}

下面防止你错误毁掉两次,且允许你更加安全的将回调处理函数直接附加到事件触发器(event emitter)上面且在合适的地方stream

function (cb) {
cb = once(cb)
var stream = createReadableStream()
stream.on(‘data’, { /* do stuff with data */ })
stream.on(‘end’, cb)
stream.on(‘error’, cb)
}

根据说明,一个可以阅读的stream应该只是结束或者发生错误一次,实际上很多的strema没有为此检车属性,这导致了错误可能在彻底结束之后发生,或者在错误之后回调结束。

上面的函数保证了你不会发生这些bug。

原文:https://blog.xervo.io/npm-install-once

最新文章

  1. WaitType:CXPACKET
  2. 解决:NoSuchAlgorithmException: Algorithm HmacSHA1 not available
  3. Laravel 5.1 文档攻略 —— Eloquent Collection
  4. IP Failover Setup using Keepalived on CentOS/Redhat 6
  5. NoSQL数据库:数据的一致性
  6. Net判断一个对象是否为数值类型 z
  7. javaio学习笔记-字符流类(1)
  8. 转:堆(heap)和栈(stack)有什么区别??
  9. Tcl学习之--语法|变量
  10. java+tomcat+Eclipse+mysql配置
  11. Springboot文件上传与下载
  12. 推荐学习git
  13. Linux什么是挂载?mount的用处在哪?
  14. VS Code编辑器插件整理及配置设定
  15. Core Java 面经
  16. 【Go命令教程】8. go test
  17. java常用类总结
  18. Innosetup中在安装界面左下角添加超链接
  19. 【Javascript-基础-getOwnPropertyNames】Object.getOwnPropertyNames() 获取对象自身可枚举属性
  20. 大白话,讲编程之《ES6系列连载》汇总

热门文章

  1. 使用Application Loader上传APP流程解读[APP公布]
  2. Android ImageButton的使用。
  3. linux下nginx安装php
  4. share(发包方面)
  5. oracle 如何完全删除干净
  6. ural 1303 Minimal Coverage【贪心】
  7. 洛谷 2233 [HNOI2002]公交车路线
  8. PAT 1053. 住房空置率 (20)
  9. 关于随机浏览头伪装fake-UserAgent
  10. 第六篇 javascript面向对象