node-promise

Promises 实现
授权协议 MIT
开发语言 JavaScript
所属分类 Web应用开发、 Node.js 扩展
软件类型 开源软件
地区 不详
投 递 者 宓昂雄
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

node-promise 在 Node.js 平台上提供了完整的 Promises 的实现。

The node-promise module features a promise implementation with:

  • Chainable promises
  • Promises throw errors if an error handler is not provided
  • CommonJS promise proposal [1] compliant
  • Immutable once fulfilled to reduce possible side-effects
  • Promises can be used securely (as separate resolver/promise pairs in ocap situations)
  • Backwards compatibility where possible (addCallback, addErrback, emitSuccess, and emitError should still behave as expected)

Utility functions, including:

  • when() - Normalization of sync (normal values) and async (promises)
  • all() - Create a promise that accumulate multiple concurrent promises
  • first() - Find the first promise to be fulfilled in a group of promises
  • seq() - Sequentially execute a set of promise returning functions
  • delay() - Returns a promise that is fulfilled after a given amount of time
  • execute() - Executes a function that takes a callback and returns a promise (thank you Benjamin Thomas for providing this)

示例代码:

var Promise = require("promise").Promise;
var promise = new Promise();
asyncOperation(function(){
  Promise.resolve("succesful result");
});
promise -> given to the consumer
  • Promise的静态方法 Promise.resolve() 创建一个立即完成的Promise Promise.resolve(10).then(r => { console.log(r); }) Promise.reject() 创建一个立刻拒绝的Promise Promise.reject("错误").catch(r =>{console.log(r);}) Promise.all([..

  • 书中第四章异步编程介绍的内容比较丰富,今天读到支持序列执行的Promise一节,为加深理解,将代码和体会整理如下。 让Promise支持序列执行的初衷是减少编码量。如书中所言,直接使用回调函数嵌套或者事件监听(Emitter)会导致大量的重复或者丑陋代码。而Promise有then方法,如果级联起来,代码逻辑清楚,内容简洁。 首先,定义Promise和Deferred对象: var Promise

  • promise 一个标准,Promise也已经纳入了ES6,而且高版本的chrome、firefox浏览器都已经原生实现了Promise,它描述了异步调用的返回结果,包括正确返回结果和错误处理,可以解耦异步调用中的复杂嵌套问题。关于详细的说明文档可以参考 Promises/A+ 。目前实现 promise 标准的模块有很多,如 Q 、 bluebird 和 Deferred ,下面我们以 Q 为例

  • Promise是一种异步编程的解决方案。 现在经常使用回调函数来解决异步通信(传参)的问题,若回调函数层次过深,就会出现回调地狱问题(逻辑不够清晰,可维护性差) Promise是一个对象,通过new Promise来创建对象 1.创建Promise对象 1)Promise对象需要接收一个函数作为参数,这个作为参数的函数有两个参数,resolve,reject 2)resolve和reject本身也

  • 1、Promise 简介 Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了Promise对象。 所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。Promis

  • /* 自定义Promise函数模块: IIFE */ (function (window) { const PENDING = 'pending' const RESOLVED = 'resolved' const REJECTED = 'rejected' /* Promise构造函数 excutor: 执行器函数(同步执行) */ function

  • 新旧promise代码对比,代码中有回调,异步等等就可以用promise,极大提高编程体验. var fs = require("fs"); // // var // function readFileAsync(path){ // return new Promise((resolve,reject) => { // fs.readFile(path,(err,dat

  • 通过回调函数获取函数的执行结果: 1、sum定义三个形参分别为a、b、cb(回调函数callback)。给sum传递三个实参分别为123、456、function函数, 则 cb 即为第三个参数; 2、调cb()就是在调function(){ }这个函数,将a+b作为回调函数的参数传递给function(){ },定义形参result接收这个变量; 3、将result作为结果输出。 functio

  • promise 为了解决回调地狱问题,在ES6中提供了Promise Promise实际上就是在原本的异步API上面包裹一层函数,其中Promise参数函数的resolve , reject两个参数,实际上和普通的回调函数一样,都接受一个回调函数作为实参,而在运行时返回一个实参给调用他的then或catch两个回调函数,这样就会获得异步API中的执行结果 而这个包裹的一层函数就是promise对象

  • 知网 const fs = require('fs'); const promisify = (asyncFn) => { return (...args) => { return new Promise((res, rej) => { args.push((err, data) => { if (err) { rej(err);

  • 之前在一个页面写了好多代码,有点冗杂,把具体的逻辑代码封装一下; 有些方法需要Promise 示例: function serverYDYN() { //修改 this.updateContent = function (id, newContent) { var promise = new Promise(function (resolve, reject) {

  • #nodejs的Promise ##参考 http://es6.ruanyifeng.com/#docs/promise ##说明 笔者环境为Ubuntu16.04、node6.×.×,使用语言版本为ES6 ##Promise介绍 Promise是nodejs异步编程的一种方式,ES6把Promise写入了语言标准,原生支持了Promise语法 Promise包括的类方法有:Promise.res

  •     Promise就是一个用来存储数据对象     但是由于Promise存取的方式的特殊,所以可以直接将异步调用的结果存储到Promise中     对Promise进行链式调用时       后边的方法(then和catch)读取的上一步的执行结果       如果上一步的执行结果不是当前想要的结果,会直接跳过当前方法     当Promise出现异常时,而整个调用链中没有出现catch,

  • <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <tit

 相关资料
  • 本文向大家介绍使用node+vue.js实现SPA应用,包括了使用node+vue.js实现SPA应用的使用技巧和注意事项,需要的朋友参考一下 业务需求 最近公司要求开发web版的app,由于app是偏向内容方面,而且带了一个聊天模块,所以一般的多页开发不是很适合,而且主要是手机浏览,对加载速度或者用户体验来说都比较苛刻。调研了很多框架和模式,最后自己东拼西凑搞出来了这么一个玩意。 服务端 毫无疑

  • 本文向大家介绍简单实现Node的Events模块?相关面试题,主要包含被问及简单实现Node的Events模块?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 简介:观察者模式或者说订阅模式,它定义了对象间的一种一对多的关系,让多个观察者对象同时监听某一个主题对象,当一个对象发生改变时,所有依赖于它的对象都将得到通知。 node中的Events模块就是通过观察者模式来实现的: 这样,eve

  • 本文向大家介绍VUE+node(express)实现前后端分离,包括了VUE+node(express)实现前后端分离的使用技巧和注意事项,需要的朋友参考一下 vue作为前端的框架,node(express)作为后端的框架。无数据库,使用端口保存数据。 VUE: 使用vue-cli构建vue项目(vueapp)。 axios:(与ajax相似) axios没安装的记得装一下。(安装不细说) nod

  • 本文向大家介绍node.js中使用node-schedule实现定时任务实例,包括了node.js中使用node-schedule实现定时任务实例的使用技巧和注意事项,需要的朋友参考一下 有的时候需要根据业务需要,晚上凌晨以后执行某些操作的时候,这个可能会有所帮助,我最近正在研究这个,欢迎共同探讨。 github地址:https://github.com/mattpat/node-schedule

  • Node是kubernetes集群的工作节点,可以是物理机也可以是虚拟机。 Node的状态 Node包括如下状态信息: Address HostName:可以被kubelet中的--hostname-override参数替代。 ExternalIP:可以被集群外部路由到的IP地址。 InternalIP:集群内部使用的IP,集群外部无法访问。 Condition OutOfDisk:磁盘空间不足时

  • node 负责 peer node 子命令。

  • 这用于确定进程需要运行的节点的值。 由于分布式编程用于在不同节点上运行函数,因此在希望在不同机器上运行程序时,此功能非常有用。 语法 (Syntax) node() 参数 (Parameters) None 返回值 (Return Value) 这将返回本地节点的名称。 如果节点未分发,则返回nonode@nohost 。 例如 (For example) -module(helloworld)

  • The Po.et Node The Po.et Node allows you to timestamp documents in a decentralized manner. It's built on top of the Bitcoin blockchain and IPFS. Index The Po.et Node Index How to Run the Po.et Node De