Promise 并行

Promise.all是所有的Promise执行完毕后(reject|resolve)返回一个Promise对象。

最近在开发一个项目中,需要等接口拿到全部数据后刷新页面,取消loding效果

  // 项目中请求接口
function getShowProject(resolve, reject) {
$.ajax({
url: `${api}/rrz/member/showProjectById`,
type: 'get',
data: { appId: appId },
success: function (res) {
if (res.result == 'success') {
gather['listBy'] = res.data;
resolve();
}
}
});
}
function getProjectPic(resolve, reject) {
...
}
function projectRelation(resolve, reject) {
...
}
function queryProjectDynamicS(resolve, reject) {
...
}
function showProjectLoveValue(resolve, reject) {
...
}
function getAppProjectDonorComment(resolve, reject) {
...
}
// 等待接口全部请求完成后 刷新页面
var a1 = new Promise(getShowProject);
var a2 = new Promise(getProjectPic);
var a3 = new Promise(projectRelation);
var a4 = new Promise(queryProjectDynamicS);
var a5 = new Promise(showProjectLoveValue);
var a6 = new Promise(getAppProjectDonorComment);
Promise.all([a1, a2, a2, a3, a4, a5, a6]).then(function () {
info = { data: gather }
getDetail();
console.log('loading效果图消失');
})

Promise 串行

在项目的实际操作中会用到串行调用方法的情况,实现异步执行,例如
有三个方法,方法一、方法二、方法三,需要执行完方法一之后执行方法二,执行完方法二之后执行方法三,可以用Promise实现,简单的模拟做法如下:

function one(){
console.log(11111);
} function two(){
console.log(22222);
} function three(){
console.log(33333);
}
function fiveP(func){
return new Promise(function(resolve, reject) {
func();
resolve();
});
} p.then(fiveP(one))
.then(fiveP(three))
.then(fiveP(two))
.then(function(result) {
console.log('最后执行' + result);
});
// 执行结果
//
//
//
// 最后执行

7.JavaScript-Promise的并行和串行的更多相关文章

  1. Promise的并行和串行

    Promise 并行 这个功能Promise自身已经提供,不是本文的重点.主要是依赖Promise.all和Promise.race. Promise.all是所有的Promise执行完毕后(reje ...

  2. async/await 里的并行和串行

    我们在使用 async/await 语法时,有时会这样用: function getName () { return new Promise((resolve, reject)=>{ setTi ...

  3. 大叔也说并行和串行`性能提升N倍(N由操作系统位数和cpu核数决定)

    返回目录 并行是.net4.5主打的技术,同时被封装到了System.Threading.Tasks命名空间下,对外提供了静态类Parallel,我们可以直接使用它的静态方法,它可以并行一个委托数组, ...

  4. activiti并行和串行区别

    多实例还有并行.串行区分.以下解释一下什么是并行与串行 并行代表同时进行,如把任务分给5个人来处理,这5个人同时会收到任务,并且可以同时处理,不受各自的影响. 串行代表工作或任务由一个人完成后,再由另 ...

  5. 动画处理<并行和串行>

    并行动画 当多个动画定义同时指向某个组件,并使用动画控制器启动时,就产生了并行动画(Parallel Animation).例如我们可以让一个组件: 移动的同时改变大小 旋转的同时边界颜色闪烁 圆形图 ...

  6. Quarz.net 设置任务并行和任务串行

    如何设置Quarz.net某个任务完成后再继续执行该任务?  Quarz.net 的任务有并行和串行两种: 并行:一个定时任务,当执行时间到了的时候,立刻执行此任务,不管当前这个任务是否在执行中: 串 ...

  7. JavaScript Promise:去而复返

    原文:http://www.html5rocks.com/en/tutorials/es6/promises/ 作者:Jake Archibald 翻译:Amio 女士们先生们,请准备好迎接 Web ...

  8. JavaScript - Promise对象

    优点: 在异步执行的流程中,把执行代码和处理结果的代码清晰地分离(因为Promise对象有链式写法,有then和catch) 组合使用Promise,就可以把很多异步任务以并行和串行的方式组合起来执行 ...

  9. FS BPM 业余研发(用户详细操作手册--单人串行/并行)之 深圳分公司技术部请假审批流程

    1.FS BPM 简介 BPM软件中BPM是英文字母缩写,大致有二个意思.第一.Business Process Management,即业务流程管理,是一套达成企业各种业 务环节整合的全面管理模式. ...

随机推荐

  1. JSOI 2015 送礼物

    [BZOJ4476] [JSOI2015]送礼物 Description JYY和CX的结婚纪念日即将到来,JYY来到萌萌开的礼品店选购纪念礼物. 萌萌的礼品店很神奇,所有出售的礼物都按照特定的顺序都 ...

  2. Spring Cloud微服务安全实战_3-2_第一个API及注入攻击防护

    1,本节主要讲了sql注入防范,如果使用mybatis,需要注意mapper.xml里面$会造成sql注入风险. 第一个 api 代码:https://github.com/lhy1234/sprin ...

  3. 在jsp页面中通过struts的标签<s:if>来判断选择显示控件

    <s:iterator value="#request.users" var="u"> <!-- 判断该条评论的评论人是不是查看这篇评论的用户 ...

  4. CF598: div3解题报告

    CF598:div3解题报告 A: Payment Without Change 思路: 按题意模拟即可. 代码: #include<bits/stdc++.h> using namesp ...

  5. SpringBoot配置文件加载位置与优先级

    1. 项目内部配置文件 spring boot 启动会扫描以下位置的application.properties或者application.yml文件作为Spring boot的默认配置文件 –fil ...

  6. 一元n次方程为什么至多有n个实根

    任意一个n次多项式都可以分解成n个一次多项式的乘积.例如,对于三次多项式来说,那就可以分成三个一次式的乘积,也就是说,三次方程最多有三个根. 需要注意的是,最少的话可能一个实根都没有,如\(f(x)= ...

  7. javaWeb如何转发数据,jsp页面如何接收?

      1.情景展示 现在有一个需求就是:请求达到服务器后,服务器需要将请求的数据传给另一个页面,如何实现? 2.目标分析 通过服务器跳转到页面上,有两种实现方式:一种是转发,一种是重定向. 我们知道转发 ...

  8. 【Gamma阶段】第八次Scrum Meeting

    冰多多团队-Gamma阶段第八次Scrum会议 工作情况 团队成员 已完成任务 待完成任务 卓培锦 编辑器风格切换(添加夜间模式) UI界面手势切换 牛雅哲 添加pytorch训练dict和ssh工具 ...

  9. MongoDB查询和sql查询的总结

    查询所有表或集合 sql   show tables mongodb    db.getCollectionNames() 删除集合或表 sql   drop table 表名 mongodb    ...

  10. window 运行spark报错

    Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties // :: ERROR Shell: F ...