• Promise的两种处理异步的方式


    单个异步处理:

    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;
        }
    }
  • 相关阅读:
    go语言的grpc安装记录
    MySQL1:客户端/服务器架构
    设计模式
    乐观锁与悲观锁的选择
    compareAndSwapObject 产生ABD原因
    wangEditor
    ckeditor4学习
    git公司远程提交
    java面试题总结
    基本数据类型和包装类
  • 原文地址:https://www.cnblogs.com/jayinnn/p/10400822.html
Copyright © 2020-2023  润新知