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. MongoDB在windows及linux环境下安装

    linux下安装配置 整理中... windows下安装配置 1.下载: https://www.mongodb.com/download-center?jmp=nav 2.解压到D盘 3.D:\下创 ...

  2. String s = new String("xyz");创建了几个String Object?并作说明。

    String s = new String("xyz");创建了几个String Object?并作说明. 共产生了两个2个对象,第一个是字符串常量xyz,存储于常量池中.第二个对 ...

  3. JavaScript的深克隆与浅克隆

    JS数据类型分为两类: 基本类型(Number.Boolean.Undefined.Null.String.Symbol(ES6新加,此处不讨论))与引用类型(Object).原始类型存储的是对象的实 ...

  4. 列表:list

    #_*_coding:utf-8_*_#作者:王佃元#日期:2019/12/7'''数据类型整数字符串列表.元组name = 'wuchao'name = 'jinxin'name = 'xiaohu ...

  5. cf1179D

    cf1179D 链接 cf 思路 csdn 很玄学,正解是斜率优化dp,但被一个奇妙的贪心过了. 代码 #include <bits/stdc++.h> #define ll long l ...

  6. 未能加载文件或程序集“***”或它的某一个依赖项,拒绝访问 <解决方法>

    报错信息如下: 注:为了部分隐私安全需要,已将有问题文件名替换为filename,系统win2008R2,Microsoft .NET Framework 版本:4.0.30319; ASP.NET ...

  7. udev工作流程简图

  8. css特效之旋转音乐播放器

    本次需要用到的知识点有: transform setInerval 怎么添加背景音乐我会在下一篇介绍 https://www.cnblogs.com/zouwangblog/p/11138734.ht ...

  9. 分布式系统全局唯一ID生成

    一 什么是分布式系统唯一ID 在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识. 如在金融.电商.支付.等产品的系统中,数据日渐增长,对数据分库分表后需要有一个唯一ID来标识一条数据或消息, ...

  10. 配置tomcat服务器内存大小中的Xms、Xmx、PermSize、MaxPermSize 详解

    1.参数的含义 -vmargs -Xms256m -Xmx512m -XX:PermSize=256M -XX:MaxPermSize=512M -vmargs 说明后面是VM的参数,所以后面的其实都 ...