单个异步处理:

let usedMemoryPromise = fetchUsedMemeory();
usedMemoryPromise.then(data => {...}) function fetchUsedMemeory(){
return new Promise( function(resolve){
let clusterId = $("#cluster-id").val();
invokeJsonRpc(RDS_CONFIG.APOLLO_CMDB_ENDPOINT_V3,
"query.aggregate",
{
graph: `graph g { redisCluster: RedisCluster[ id = "${clusterId}" ];}`,
fields: [["redisCluster.name", "redisCluster.id", "redisCluster.used_memory"]]
}).then(resp => {
let usedMemory = resp.result.children[0].data["redisCluster.used_memory"];
resolve(usedMemory);
})
});
}

多个异步同时处理:

async function findXdcrRelation(state, bucketId) {
const xdcrSourcePromise = invokeJsonRpc(RDS_CONFIG.APOLLO_CMDB_ENDPOINT_V3,
"query.resource",
{
graph: `g {
x: CouchbaseXDCR;
s: CouchbaseBucket [id=${bucketId}];
x ~> @source_bucket ~> s;}`,
target: 0
});
const xdcrTargetPromise = invokeJsonRpc(RDS_CONFIG.APOLLO_CMDB_ENDPOINT_V3,
"query.resource",
{
graph: `g {
x: CouchbaseXDCR;
s: CouchbaseBucket [id=${bucketId}];
x ~> @target_bucket ~> s;}`,
target: 0
});
let [xdcrSourceData, xdcrTargetData] = await Promise.all([xdcrSourcePromise, xdcrTargetPromise]);
const hasError = (xdcrSourceData.hasOwnProperty("error") && xdcrTargetData.hasOwnProperty("error"));
if (!hasError && (xdcrSourceData.result.length > 0 || xdcrTargetData.result.length > 0)) {
state.hasXdcrRelation = true;
}
}

Promise的两种处理异步的方式的更多相关文章

  1. redis笔记之两种持久化备份方式(RDB & AOF)

    Redis支持的两种持久化备份方式(RDB & AOF) redis支持两种持久化方式,一种是RDB,一种是AOF. RDB是根据指定的规则定时将内存中的数据备份到硬盘上,AOF是在每次执行命 ...

  2. Windows Azure VM的两种shut down 方式

    今天在调查Azure的价格时,发现下面的语句,来自http://azure.microsoft.com/en-us/pricing/details/virtual-machines/ * If my ...

  3. 两种隐藏元素方式【display: none】和【visibility: hidden】的区别

    此随笔的灵感来源于上周的一个面试,在谈到隐藏元素的时候,面试官突然问我[display: none]和[visibility: hidden]的区别,我当时一愣,这俩有区别吗,好像有,但是忘记了啊,因 ...

  4. Linux共享库两种加载方式简述

      Linux共享库两种加载方式简述  动态库技术通常能减少程序的大小,节省空间,提高效率,具有很高的灵活性,对于升级软件版本也更加容易.与静态库不同,动态库里面的函数不是执行程序本身 的一部分,而是 ...

  5. android环境下两种md5加密方式

    在平时开发过程中,MD5加密是一个比较常用的算法,最常见的使用场景就是在帐号注册时,用户输入的密码经md5加密后,传输至服务器保存起来.虽然md5加密经常用,但是md5的加密原理我还真说不上来,对md ...

  6. Form表单中method=post/get两种数据传输的方式的区别

    Form提供了两种数据传输的方式——get和post.虽然它们都是数据的提交方式,但是在实际传输时确有很大的不同,并且可能会对数据产生严重的影响.虽然为了方便的得到变量值,Web容器已经屏蔽了二者的一 ...

  7. 两种数据传输的方式——get和post。

    Form提供了两种数据传输的方式——get和post.虽然它们都是数据的提交方式,但是在实际传输时确有很大的不同,并且可能会对数据产生严重的影响.虽然为了方便的得到变量值,Web容器已经屏蔽了二者的一 ...

  8. Xamarin Android Fragment的两种加载方式

    android Fragment的重点: 3.0版本后引入,即minSdk要大于11 Fragment需要嵌套在Activity中使用,当然也可以嵌套到另外一个Fragment中,但这个被嵌套的Fra ...

  9. nginx 和 tp兼容pathinfo和rewrite两种url访问方式

    环境:centos7,yum安装的nginx1.10.php-fpm,tp3.2 本方法只需要配置nginx.conf的一个文件就可以支持pathinfo和rewrite两种url访问方式 vim / ...

随机推荐

  1. PureMVC 官方文档翻译(一)

    最近在学习PureMVC框架,感觉最权威的还是阅读官方文档,顺便翻译了下全当记笔记了. PureMVC概览 这篇文档他讨论PureMVC框架的类和接口,使用UML来阐述它们的角色.职责和协作. Pur ...

  2. Roomblock: a Platform for Learning ROS Navigation With Roomba, Raspberry Pi and RPLIDAR(转)

      What is this? "Roomblock" is a robot platform consists of a Roomba, a Raspberry Pi 2, a ...

  3. 大数据处理框架之Strom:DRPC

    环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk1.8 storm-0.9 一.DRPC DRPC:Distri ...

  4. 6.JAVA基础复习——JAVA中文档注释与帮助文档的生成

    java中的文档注释:用于说明该类的功能作用方便他人使用关键词前需要加@符 用于类的注释 @author name 作者 @version v1.0 版本 …… 用于函数的注释 @param para ...

  5. ogg 12.3 for sqlserver 2016/2014 CDC模式配置

    本文主要讲述ogg 12.3 通过CDC抽取mssqlserver 2016 enterprise的过程,以sqlserver为目标端投递配置相对简单,所以在此不在赘述. 针对以前的mssqlserv ...

  6. 代码修改WinForm datagridview 样式 及数据绑定

    #region 表格设置 /// <summary> /// 调整表格 /// </summary> /// <param name="dataGrid&quo ...

  7. Exp3 免杀原理与实践 20164303 景圣

    Exp3 免杀原理与实践 一.实验内容 1. 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧 2. 通过组合 ...

  8. @Override报错的处理

    有时候我们从SVN导的项目,jre和jar包都没问题,但是就会出如下图的错误: xi 点击红叉,显示错误信息如下: 点击工具里面的window-->preferences-->java-- ...

  9. 本地Git仓库和Github仓库的关联

    1.我们首先创建一个文件夹(用于保存本地仓) 在我们想要创建的路径下右键鼠标打开Git Bash Here(创建一个文件夹,并进入文件夹) 2.通过命令git init把我们刚才创建的文件夹变成Git ...

  10. Javascript的千分位和去除千分位

    1.转成千分位,保留两位 comdify(n) { let num = Number(n); let re = /\d{1,3}(?=(\d{3})+$)/g; let n1 = num.toFixe ...