NodeJS Promoise 机制最简单介绍

原创 2018年04月14日 22:34:38

NodeJS的Promise机制是为了解决JS执行过程中的异步问题,或者说,有时候我们希望程序代码是顺序执行的。

先来看看下面这段代码的执行结果:

var fs=require("fs");

var res = fs.readFile("C:/foo.txt",function(error,data){
      console.log(data.toString())
});

console.log("end");

按照通常的理解,应该先打印出foo.txt文件中的内容,但实际的执行结果是先打印出了end字符串。这是因为JS代码的执行是异步的,但执行到读取文件这段代码时需要一些事件,于是并没有等待执行完毕就执行了下面的代码,因此打印出了end字符串。

如果我们想实现读完文件再执行打印end字符串的操作,就需要使用到Promise机制。看下面的代码:

function readFile_promise(path) {
    return new Promise(function (resolve, reject) {
        fs.readFile(path, "UTF-8", function (error, data) {
            if (data) {
                resolve(data);
            } else {
                reject(error);
            }
        });
    });
}

var promise=readFile_promise("C:/foo.txt");

promise.then(function(data){
    console.log(data);
}).then(function(){
    console.log("end");
}).then(function(){
    console.log("final");
});

我们声明了一个Promise函数,它有两个参数resolve代表执行成功,reject代表执行失败。调用的时候使用then方法,这样我们就实现了先读取文件再执行后续的打印操作(通过一个个then方法来拼接),进而达到了我们希望的串行调用。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yahoo169/article/details/79945180

<<AI入门(6)>>(C)

置换和合一:置换:在谓词逻辑中一个重要的规则是假元推理,它是由合式公式W1和W1=>W2产生合式公式W2,另一个重要的规是则全称化推理:它是由合式公式(/-/x)W(x)产生合式公式W(A).例一: ...
  • ghj1976
  • ghj1976
  • 2000-12-29 08:43:00
  • 1165

Node.js简单介绍

Node.js REPL(交互式解释器) Node.js REPL(Read Eval Print Loop:交互式解释器) 表示一个电脑的环境,类似 Window 系统的终端或 Unix/Linu...
  • ssisse
  • ssisse
  • 2016-06-30 10:02:23
  • 1302

学习nodejs第二课,一个简单的nodejs程序

1新建一个js文件交node_hello_001.js 2.内容如下: var http = require("http"); function onRequest(request, ...
  • two_people
  • two_people
  • 2016-11-29 19:24:37
  • 458

Node.js机制及原理理解初步

node.js是单线程。好处就是1)简单2)高性能,避免了频繁的线程切换开销3)占用资源小,因为是单线程,在大负荷情况下,对内存占用仍然很低3)线程安全,没有加锁、解锁、死锁这些问题坏处就是如何解决高...
  • leftfist
  • leftfist
  • 2014-12-16 19:48:16
  • 33005

nodeJs的事件机制

一、信号事件的回调 非常类似qt开发中signgl/slot机制,很好理解。函数的对象(包括使用通用的EventEmitter的对象或者自定义函数的对象)可以发射signal,然后对应的注册函数...
  • eric0095
  • eric0095
  • 2015-10-08 19:07:16
  • 677

Nodejs:http入门1:最简单的demo

最最最简单的nodejs的http模块的demo
  • HUSHILIN001
  • HUSHILIN001
  • 2017-12-28 12:16:45
  • 199

APNS机制的简单分析

提到消息推送,那就不得不提及苹果的APNS(Apple Push Notification Service)。我们首先来看一组数据(数据来自互联网)1. 苹果在WWDC 2012上宣布每天发送70亿条...
  • xttxqjfg
  • xttxqjfg
  • 2017-07-06 17:08:58
  • 203

nodejs简易server环境及简易接口路由 写在一起 (2)

上篇:nodejs简易server环境及简易接口路由 写在一起 再来个带inclue功能的,nodejs简易server环境及简易接口路由 写在一起 (2) grunt:搞...
  • zuitaibai
  • zuitaibai
  • 2016-03-24 16:07:11
  • 250

Nodejs 入门秘籍,搭一个最简单的web服务器。(菜鸟的你也能秒懂)

心血来潮,总结了一个Nodejs入门秘籍。看了你就想学NodeJs了。 nodejs是用C++开发的一种运行于服务器端的语言,可以写网站后台程序,可以做服务端应用开发,语法和JAVASCRIPT一样,...
  • lgandzmy
  • lgandzmy
  • 2015-02-08 00:10:11
  • 7210

HBase读写机制和物理模型

介绍了HBase的读写机制和物理模型
  • amghost
  • amghost
  • 2015-04-30 08:21:24
  • 810
收藏助手
不良信息举报
您举报文章:NodeJS Promoise 机制最简单介绍
举报原因:
原因补充:

(最多只允许输入30个字)