1. /**
  2. * Created by liyinghao on 2016/11/6.
  3. */
  4. const fs = require('fs');
  5. /*
  6. * 新建一个Promise对象,Promise就是一个容器,里面放置一个异步执行的API
  7. * */
  8. const p1 = new Promise((resolve, reject)=>{
  9. fs.readFile('./a.txt','utf8',(err,data)=>{
  10. if(err){
  11. /*
  12. * 容器中异步任务失败之后调用reject方法,把错误对象传递给reject,同时终止程序的执行
  13. * */
  14. return reject(err);
  15. }
  16. /*
  17. * 容器中的异步任务成功之后调用resolve方法,把结果传递给resolve方法
  18. * */
  19. resolve(data);
  20. })
  21. });
  22. const p2 = new Promise((resolve,reject)=>{
  23. fs.readFile('./b.txt','utf8',(err,data)=>{
  24. if(err){
  25. return reject(err);
  26. }else{
  27. resolve(data);
  28. }
  29. })
  30. });
  31. /*
  32. * promise对象一经创建,立即执行,可以通过执行创建的promise对象的then方法获取resolve方法中的值,
  33. * then方法需要一个回调函数,回调函数就是resolve方法
  34. * */
  35. p1.then(data=>{
  36. console.log(data);
  37. return p2;
  38. /*
  39. * 返回一个promise继续进行链式调用
  40. * */
  41. }).then(data=>{
  42. console.log(data);
  43. })
  44. /*
  45. * catch方法可以把之前任务中所有可能遇到的错误都捕获到
  46. * */
  47. .catch(err=>{
  48. throw err;
  49. });

promise基础用法的更多相关文章

  1. 整理一下Promise 的用法

    Promise 的定义 Pormise是JS的异步编程的一种解决方案,在ES6将其写进了语言标准,提供了原生的Promise对象. Promise简单来理解就是一个容器,里面存放着某个未来才会结束的事 ...

  2. PropertyGrid控件由浅入深(二):基础用法

    目录 PropertyGrid控件由浅入深(一):文章大纲 PropertyGrid控件由浅入深(二):基础用法 控件的外观构成 控件的外观构成如下图所示: PropertyGrid控件包含以下几个要 ...

  3. logstash安装与基础用法

    若是搭建elk,建议先安装好elasticsearch 来自官网,版本为2.3 wget -c https://download.elastic.co/logstash/logstash/packag ...

  4. elasticsearch安装与基础用法

    来自官网,版本为2.3 注意elasticsearch依赖jdk,2.3依赖jdk7 下载rpm包并安装 wget -c https://download.elastic.co/elasticsear ...

  5. BigDecimal最基础用法

    BigDecimal最基础用法 用字符串生成的BigDecimal是不会丢精度的. 简单除法. public class DemoBigDecimal { public static void mai ...

  6. Vue组件基础用法

    前面的话 组件(Component)是Vue.js最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码.根据项目需求,抽象出一些组件,每个组件里包含了展现.功能和样式.每个页面,根据自己所需, ...

  7. Smarty基础用法

    一.Smarty基础用法: 1.基础用法如下 include './smarty/Smarty.class.php';//引入smarty类 $smarty = new Smarty();//实例化s ...

  8. 前端自动化测试神器-Katalon的基础用法

    前言 最近由于在工作中需要通过Web端的功能进行一次大批量的操作,数据量大概在5000左右,如果手动处理, 完成一条数据的操作用时在20秒左右的话,大概需要4-5个人/天的工作量(假设一天8小时的工作 ...

  9. Bootstrap fileinput:文件上传插件的基础用法

    官网地址:http://plugins.krajee.com/ 官网提供的样例:http://plugins.krajee.com/file-input/demo 基础用法一 导入核心CSS及JS文件 ...

随机推荐

  1. centos7下zookeeper安装配置

    1.下载zookeeper文件 cd /opt/ wget http://mirrors.hust.edu.cn/apache/zookeeper/stable/zookeeper-3.4.9.tar ...

  2. 【转】Selenium 加载Chrome/Firefox浏览器配置文件

    原文地址:https://www.cnblogs.com/eastonliu/p/9083982.html Selenium启动浏览器时,默认是打开一个新用户,不会加载原有的配置以及插件.但有些时候我 ...

  3. Linux查看硬件配置

    1.查看机器所有硬件信息:dmidecode |moredmesg |more 这2个命令出来的信息都非常多,所以建议后面使用"|more"便于查看 2.查看CPU信息 方法一: ...

  4. Springboot01-web

    Springboot快速构建 访问http://start.spring.io 构建springboot项目,这里选择版本2.0.4 单击Generate Project按钮下载springboot ...

  5. Python3调用hessian

    领导派了个任务,实现服务器日志文件调用hessian接口保存到数据库 研究了半天python调用hessian的办法 首先使用hessian for python的链接: http://hessian ...

  6. 配置访问公网主机上的jupyter notebook

    文章结构: 一.安装python 二.安装并配置jupyter并配置jupyter 三.第一个python程序 一.安装python 1.1下载python安装包 # wget https://www ...

  7. 教你如何创建vue环境

    教你如何创建vue的环境 wdnmd我操作了一万年,终于成功创建了vue的环境,现在就来讲一下,到底应该怎么操作才能成功创建vue的 第一步 : 我们应该做的不是别的,而是去官方网站下载文件 node ...

  8. docker 安装Filebeat

    1.查询镜像 docker search filebeat 2.拉取镜像 我此处选择的是prima/filebeat docker pull prima/filebeat 3.创建配置文件 fileb ...

  9. 数据索引文件idx

    数据索引文件idx 数据索引文件idx 数据索引文件idx

  10. 三步完成Source Insight 4.0 破解安装(转)

    转自:https://blog.csdn.net/biubiuibiu/article/details/78044232 三步完成Source Insight 4.0 破解安装   下载地址有更新,之 ...