iis服务器助手广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >nodejs中简单实现Javascript Promise机制的实例
  • 142
分享到

nodejs中简单实现Javascript Promise机制的实例

实例机制简单 2022-06-04 17:06:48 142人浏览 独家记忆
摘要

promise/deferred 是一个很好的处理异步调用编码的规范,下面以nodejs代码为类,来实现一个promise/A 规范的简单实现 var EventEmitter = require('

promise/deferred 是一个很好的处理异步调用编码的规范,下面以nodejs代码为类,来实现一个promise/A 规范的简单实现

var EventEmitter = require('events').EventEmitter; var Http = require('http'); var util = require('util'); // 定义promise对象 var Promise = function(){ // 实现继承事件类 EventEmitter.call(this); } // 继承事件通用方法 util.inherits(Promise, EventEmitter); // then 方法为promise/A 规范中的方法 Promise.prototype.then = function(successhandler, errorHandler, progressHandler){ if (typeof successHandler == 'function'){ this.once('success', successHandler); } if (typeof errorHandler === 'function'){ this.once('error', errorHandler); } if (typeof progressHandler === 'function'){ this.on('process', progressHandler); } return this; }

// 定义延迟对象 // 包含一个状态和一个promise对象 var Deferred = function(){ this.state = 'unfulfilled'; this.promise = new Promise(); } Deferred.prototype.resolve = function(obj){ this.state = 'fulfilled'; this.promise.emit('success', obj); } Deferred.prototype.reject = function(err){ this.state = 'failed'; this.promise.emit('error', err); } Deferred.prototype.progress = function(data){ this.promise.emit('process', data); }

// 利用一个http请求来运用上面定义的promise/deferred

var client = function(){ var options = { hostname:'www.baidu.com', port:80, path:'/', method: 'get' }; var deferred = new Deferred(); var req = http.request(options, function(res){ res.setEncoding('utf-8'); var data = ''; res.on('data', function(chunk){ data += chunk; deferred.progress(chunk); }); res.on('end', function(){ deferred.resolve(data); }); }); req.on('error', function(err){ deferred.reject(err); }) req.end(); return deferred.promise; } client().then(function(data){ console.log('请求完成', data); }, function(err){ console.log('访问错误', err); }, function(chunk){ console.log('正在读取', chunk); });

代码保存为promise.js,可以在命令行下面运行,直接输入node promise.js,即可看到运行效果。

--结束END--

本文标题: nodejs中简单实现Javascript Promise机制的实例

本文链接: https://www.lsjlt.com/news/11971.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JavaScript怎么实现简易的Promise对象
    这篇“JavaScript怎么实现简易的Promise对象”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“JavaScript...
    99+
    2023-07-04
  • JavaScript实现简单表单验证案例
    本文实例为大家分享了JavaScript实现简单表单验证的具体代码,供大家参考,具体内容如下 一.需求分析 要实现的功能: 1.出现如下图所示的内容:(HTML和CSS完成) 2....
    99+
    2024-04-02
  • 关于Promise基本方法的简单实现
    目录前言catch() 方法done() 方法finally() 方法Promise.all() 方法Promise.race() 方法Promise.resolve() 和 Pro...
    99+
    2024-04-02
  • JavaScript中Promise的使用方法实例
    目录前言Promise简介什么是回调地狱Promise的特点创建Promise实例then方法resolve 和 reject 的参数传递then()链式调用then()的返回值ca...
    99+
    2024-04-02
  • JavaScript实现手写promise的示例代码
    目录背景需求then的链式调用Promise.all背景 promise 作为前端开发中常用的函数,解决了 js 处理异步时回调地狱的问题,大家应该也不陌生了,今天来学习一下 pro...
    99+
    2023-05-15
    JavaScript手写promise JavaScript promise
  • Nodejs怎么实现简单的GET请求
    这篇文章主要介绍了Nodejs怎么实现简单的GET请求,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。GET请求的识别非常的简单,就是URL的识别,使用的是url.parse(...
    99+
    2023-06-15
  • nodejs 实现简单的文件上传功能(示例详解)
    首先需要大家看一下目录结构,然后开始一点开始我们的小demo。 文件上传总计分为三种方式: 1.通过flash,activeX等第三方插件实现文件上传功能。 2.通过html的fo...
    99+
    2024-04-02
  • 实现的简单python例子
    尊重作者,本文转载自:http://blog.csdn.net/oMuYeJingFeng1/article/details/23822279 1、输入3个数字,从小到大输出:x = int(input('please input x:')...
    99+
    2023-01-31
    例子 简单 python
  • JavaScript模拟实现简单的MVC的示例详解
    目录场景核心思想initControllerViewModelMVC是一种常见的软件架构模式,将一个应用程序分为三个核心的部分:模型(Model)、视图(View)和控制器(Cont...
    99+
    2023-05-15
    JavaScript实现MVC JavaScript MVC
  • nodejs中stream和pipe机制怎么实现
    这篇文章给大家分享的是有关nodejs中stream和pipe机制怎么实现的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。通过nodeschool学习streamnodeschoo...
    99+
    2024-04-02
  • javascript实现简单飞机大战小游戏
    本文实例为大家分享了javascript实现飞机大战小游戏的具体代码,供大家参考,具体内容如下 效果图 html文件 <!DOCTYPE html> <html ...
    99+
    2024-04-02
  • JavaScript中Promise的简单使用及其原理详解
    Promise是ES6最重要的特性之一,今天来系统且细致的研究一下Promise的用法以及原理。 按照我往常的理解,Promise是一个构造函数,有all、resolve、rejec...
    99+
    2023-03-23
    JavaScript Promise原理 JavaScript Promise使用 JavaScript Promise
  • Java程序单实例运行的简单实现
    目录需求实现方式代码实现第一种实现(端口控制)第二种实现(文件锁)第三种方式(端口+文件锁)需求 最近做了个java项目,功能完成后打包安装了,发现可以点开多个实例,因为桌面显示托盘...
    99+
    2024-04-02
  • 如何在JavaScript中实现简单的继承
    这篇文章主要讲解了“如何在JavaScript中实现简单的继承”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何在JavaScript中实现简单的继承”吧!...
    99+
    2024-04-02
  • Android中Progress的简单实例
    Android中Progress的简单实例Android中Progress网上的demo都是瞎扯淡,当然,你们也可以认为我的demo是瞎扯淡,因为,毕竟要理解别人的思路,很头疼,主要还是知道思路,然后一步一步慢慢来。今天我讲的是Progre...
    99+
    2023-05-31
    android progress gr
  • JavaScript实现简单计时器
    本文实例为大家分享了JavaScript实现简单计时器的具体代码,供大家参考,具体内容如下 <!DOCTYPE html> <html lang="en"&g...
    99+
    2024-04-02
  • Java实现九宫格的简单实例
     Java实现九宫格的简单实例九宫格:共有三行三列九个格子,从1到9共九个数字不重复地填入这九个格子中,条件是每行、每列、两个对角线上三个数字的和相等。下面用Java实现九宫格:public class NineTable { ...
    99+
    2023-05-31
    java 九宫格 ava
  • JavaScript使用Promise实现并发请求数限制
    目录没有Promise的并发请求使用Promise限制并发请求使用Promise实现并发请求数限制总结没有Promise的并发请求 在Web开发中,我们经常需要发起多个异步请求来获取...
    99+
    2023-05-16
    JavaScript Promise并发请求限制 Promise限制并发请求 JS promise限制并发
  • JavaScript实现简单的拖拽效果
    本文实例为大家分享了JavaScript实现简单的拖拽效果的具体代码,供大家参考,具体内容如下 1.先搭架子: * { margin: 0; ...
    99+
    2024-04-02
  • 详解JavaScript实现简单的词法分析器示例
    目录正文什么是词法分析器?实现一个简单的词法分析器总结正文 词法分析是编译器的一项重要工作,其目的是将源代码转换成单个单词(token)的序列,方便后续语法分析器(parser)对...
    99+
    2023-03-10
    JavaScript词法分析器 JavaScript 分析器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作