Promise.all(iterable) 方法返回一个 Promise 实例,此实例在 iterable 参数内所有的 promise 都“完成(resolved)”或参数中不包含 promise 时回调完成(resolve);

如果参数中  promise 有一个失败(rejected),此实例回调失败(reject),失败原因的是第一个失败 promise 的结果。

即每一个iterable都是一个函数表现方式

 getuseracl(resultes,objectId) {
var Roles = Parse.Object.extend("_Role");
var roles = new Parse.Query(Roles);
roles.get(objectId).then(res => {
var relation = res.relation("menus");
resultes.set("objectId", this.objectId);
relation.add(resultes);
res.save().then(result => {});
});
}, Promise.all([
this.MenuForm.roles.map(items => this.getuseracl(resultes,items))
]).then(data => {
this.$message({
message: "修改成功",
type: "success"
});
这种写法也会执行,但是是会全部执行,中间如果有错误也会返回全部成功。
个人理解:因为this.getuseracl()是一个函数,而Promise.all的参数为多个函数,所以会一并执行
正确的写法应该是
var arr=[]
this.MenuForm.roles.map(items=>{
  arr.push(
 new Promise((resolve,reject)=>{
var Roles = Parse.Object.extend("_Role");
var roles = new Parse.Query(Roles);
roles.get(items.id).then(res => {
var relation = res.relation("menus");
resultes.set("objectId", this.objectId);
relation.add(resultes);
res.save().then(result => {
       resolve(result)
},error=>{
      reject(error)
});
}); })   
)
})
Promise.all(arr).then(data=>{
//成功
}).catch(error=>{
  失败
})
 

Promise.all结合数组Map用法的更多相关文章

  1. js 数组map用法 Array.prototype.map()

    map 这里的map不是"地图"的意思,而是指"映射".[].map(); 基本用法跟forEach方法类似: array.map(callback,[ thi ...

  2. 数组map用法总结

    数组中,map方法,指的是是数组的映射. map基本语法如下:function回调支持3个参数,第1个是遍历的数组内容:第2个是对应的数组索引,第3个是数组本身. map方法的作用不难理解,“映射”嘛 ...

  3. Collection List Set和Map用法与区别

    labels:Collection List Set和Map用法与区别 java 散列表 集合 Collection           接 口的接口      对 象的集合   ├   List   ...

  4. ES6中Set 和 Map用法

    JS中Set与Map用法 一.Set 1.基本用法 ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set 数据结构. ...

  5. sort函数(cmp)、map用法---------------Tju_Oj_2312Help Me with the Game

    这道题里主要学习了sort函数.sort的cmp函数写法.C++的map用法(其实和数组一样) Your task is to read a picture of a chessboard posit ...

  6. C++中的STL中map用法详解(转)

    原文地址: https://www.cnblogs.com/fnlingnzb-learner/p/5833051.html C++中的STL中map用法详解   Map是STL的一个关联容器,它提供 ...

  7. c++ STL map 用法

    map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据 处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时 ...

  8. JavaScript中数组map()方法

    JavaScript 数组map()方法创建一个新的数组使用调用此数组中的每个元素上所提供的函数的结果.语法 ? 1 array.map(callback[, thisObject]); 下面是参数的 ...

  9. MyBatis传入集合 list 数组 map参数的写法

    foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合.foreach元素的属性主要有item,index,collection,open,separator,close.ite ...

随机推荐

  1. css布局之居中

    CSS布局之居中 本文主要是介绍水平居中,垂直居中,还有水平垂直居中的方法 水平居中 1.行内元素水平居中 使用text-align:center;就可以实现行内元素的水平居中,但是记得要在父元素中设 ...

  2. 《Java 8 in Action》Chapter 8:重构、测试和调试

    我们会介绍几种方法,帮助你重构代码,以适配使用Lambda表达式,让你的代码具备更好的可读性和灵活性.除此之外,我们还会讨论目前比较流行的几种面向对象的设计模式, 包括策略模式.模板方法模式.观察者模 ...

  3. CodeForces 909E

    题意略. 思路:一个拓扑排序的题目吧.肯定是要先处理后面那个任务,再处理前面那个任务,我的思路是尽力先把主处理器能操作的先操作完,然后再把副处理器能操作完的再操作完,这样循环,直到处理完全部. 定义t ...

  4. Codeforces 976E

    题意略. 思路: 容易知道那a次倍增放在同一个怪身上是最优的,其余的怪我们只需要取hp值和damage值中间最大的那个就好了(在b值的限制下). 然而我们并不知道把那a次倍增放在哪个怪身上最好,那么我 ...

  5. 浅谈jQuery中的Ajax

    浅谈jQuery中的Ajax 一.前言 jQuery 对 Ajax 操作进行了封装, 在 jQuery 中最底层的方法时 $.ajax(), 第二层是 load(), $.get() 和 $.post ...

  6. XMLHttpRequest的概述

    XMLHttpRequest的概述 一.前言 XMLHttpRequest 最早是在IE5中以ActiveX组件的形式实现的.非 W3C 标准. 创建XMLHttpRequest对象(由于非标准所以实 ...

  7. 前端项目升级到React-router5中遇到的问题解决方案以及思路

    我胡汉三有日子没回来写写文章了,最近一直再忙着将老项目升级,所以没时间来搞文章,今天突然感觉开了挂一样,爱因斯坦附体,把之前的bug都搞定了,在这里特意把升级中遇到的问题,记录下来,算是把这个坑填上. ...

  8. Delphi - cxGrid内容xlsx、xls、csv格式导出

    .xls格式导出,uses中添加cxGridExportLink 代码如下: function SaveToExcel(gridMain: TcxGrid; FileName: string): st ...

  9. Flink的Job启动TaskManager端(源码分析)

    前面说到了  Flink的JobManager启动(源码分析)  启动了TaskManager 然后  Flink的Job启动JobManager端(源码分析)  说到JobManager会将转化得到 ...

  10. 用java实现取1-100之间的99个不重复的随机数 然后输出没有被取出的数字

    package cn.kgc.springtest2.demo1.dao; import java.util.BitSet; /** * @author * @create 2019-08-02 17 ...