await is a reserved word 以及将forEach方法的参数改为async函数出现的问题

 engine.registerHandler('breakpoint:*/EvaluateTest.java:*', async (event, arg1, arg2, detail) => {
            utils.pathEquals(breakpointFile, detail.source.path).should.equal(true);
            detail.line.should.equal(expectedLines[linePos++]);
            console.log('***threads', await engine.threads());
            let evaluateArguments = [{
                type: "const",
                request: "1+2",
                expectedResponse: 3
            }, {
                type: "variable",
                request: "i+1",
                expectedResponse: 2
            }, {
                type: "notExistVariable",
                request: "a",
                expectedResponse: "a cannot be resolved to a variable"
            }, {
                type: "function",
                request: "test()+10",
                expectedResponse: 13
            }];

            let evaluateTest = async arg => {
                let evaluateResponse;
                try {
                    evaluateResponse = await engine.evaluate(arg.request, detail.id, "watch");
                    if (arg.type !== "notExistVariable") {
                        console.log("******", "Evaluate " + arg.type);
                        assert(evaluateResponse.result.toString() === arg.expectedResponse.toString());
                    }
                }
                catch (ex) {
                    if (arg.type === "notExistVariable") {
                        console.log("******", "Evaluate not exisist variable");
                        assert(ex.message.includes(arg.expectedResponse));
                    }
                }

            };

            for (let ele of evaluateArguments) {
                await evaluateTest(ele);
            }

 
再用babel转码的时候遇到了await is a reserved word的错误,查了资料才知道await命令只能用在async函数之中,而async与await都是对promise的操作
 let evaluateTest=async function(arg),
另外一个问题就是起初用的是evaluateArguments.forEach(async function(ele){await evaluateTest(ele)}) 用了大量的console.log()之后发现将forEach方法的参数改成
async函数,evaluateTest(ele)是并行执行也就是同时执行而不是继发执行。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值