文档章节

Promise记录

iPhone
 iPhone
发布于 2015/04/04 19:21
字数 161
阅读 8
收藏 0

 利用Q模块实现函数串行和并行的使用,上代码

 var Q = require("q");

function test(value) {
    var d = Q.defer();
    d.resolve(value);
    return d.promise;
}
function test1(value) {
    var d = Q.defer();
    d.reject(value);
    return d.promise;
}
并行计算汇总
Q.all([
    test(10),//执行三个函数
    test(20),
    test1(40)
])
    .spread(function (x, y, z) {//三个函数返回的三个值
        console.log(x, y, z);
        return x + y + z;
    }, function (err) {
        console.log(err);
    })
    .done(function (str) {//完成前面的后执行
        console.log(str)
    });

//串行计算
test(10)
    .then(function (data) {
        return test(data + 10);
    }, function (error) {
        var d = Q.defer();
        d.reject(error);
        return d.promise;
    })
    .then(function (data) {
        //return test(data + 10);
        var d = Q.defer();
        d.reject(data);
        return d.promise;
    }, function (error) {
        var d = Q.defer();
        d.reject(error);
        return d.promise;
    })
    .then(function (data) {
        console.log(data);
    }, function (error) {
        console.log("err:"+error);
    })

© 著作权归作者所有

共有 人打赏支持
iPhone
粉丝 0
博文 7
码字总数 2946
作品 0
海口
ES2017异步函数现已正式可用

ES2017标准已于2017年6月份正式定稿了,并广泛支持最新的特性:异步函数。如果你曾经被异步 JavaScript 的逻辑困扰,这么新函数正是为你设计的。 异步函数或多或少会让你编写一些顺序的 Java...

powertoolsteam
2017/08/21
0
0
JavaScript Promise 学习记录(一)

JavaScript Promise 学习记录(一) 本文首先介绍了promise的三种状态及生成不同状态promise方法,然后介绍了promise的回调处理方法then,分析了不同情况下then函数返回的promise状态。最后通过...

kkdev163
2017/11/27
0
0
一步一步实现一个符合PromiseA+规范的Promise库(1)

今天我们来自己手写一个符合PromiseA+规范的Promise库。大家是不是很激动呢?? 我们都知道。在现在的前端开发中,Promise这个东西基本上所有的开发中都会用到。 那必然有些萌新就会问了,P...

change_117b
03/11
0
0
mpvue学习笔记-之微信小程序数据请求封装

简介 美团出品的mpvue已经开源出来很久了,一直说要进行一次实践,这不最近一次个人小程序开发就用上了它。 看了微信官方的数据请求模块--request,对比了下get和post请求的代码,发现如果在...

愿爱无忧dk_
05/31
0
0
深入理解javascript系列(十九):从Promise开始到async/await

什么是同步与异步的定义,在这里我就不做记录,直接用代码来表示它们之间的区别。 首先使用Promise模拟一个发起请求的函数,该函数执行后,会在1s之后返回数值30。 在该函数的基础上,我们也...

Panthon
06/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7防火墙firewalld操作

firewalld Linux上新用的防火墙软件,跟iptables差不多的工具。 firewall-cmd 是 firewalld 的字符界面管理工具,firewalld是CentOS7的一大特性,最大的好处有两个:支持动态更新,不用重启服...

dingdayu
57分钟前
1
0
关于组件化的最初步

一个工程可能会有多个版本,有国际版、国内版、还有针对各种不同的渠道化的打包版本、这个属于我们日常经常见到的打包差异化版本需求。 而对于工程的开发,比如以前的公司,分成了有三大块业...

DannyCoder
今天
2
0
Spring的Resttemplate发送带header的post请求

private HttpHeaders getJsonHeader() { HttpHeaders headers = new HttpHeaders(); MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8"); ......

qiang123
昨天
3
0
Spring Cloud Gateway 之 Only one connection receive subscriber allowed

都说Spring Cloud Gateway好,我也来试试,可是配置了总是报下面这个错误: java.lang.IllegalStateException: Only one connection receive subscriber allowed. 困扰了我几天的问题,原来...

ThinkGem
昨天
26
0
学习设计模式——观察者模式

1. 认识观察者模式 1. 定义:定义对象之间一种一对多的依赖关系,当一个对象状态发生变化时,依赖该对象的其他对象都会得到通知并进行相应的变化。 2. 组织结构: Subject:目标对象类,会被...

江左煤郎
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部