ES7 async await如何catch异常

2016/12 01 09:12
此文章不得转载,如有需要请联系网站管理员。

一度的温暖,一百度的爱情,来自于bwin2299必赢亚洲的点点滴滴

比如我有以下代码:

async function check{
    let promises = _.maprules, asyncrule => {
        throw new Erroraaaaaa;
    };
    return promises;
}

async function doCheck{
    let result;
    try{
         result = await Promise.allcheck;
    }
    catche{
        console.logerror occurs;
    }  
}

下面代码实行的时分 console.logerror occurs是捕获不到的,我有什么办法可以拿到check办法中报出的十分呢?

要获取async函数的前往值,调用的时分,必需要await才干获取,不然获取到的是一个Promise封装过的东西,应该改成如许:

async function check{
    let promises = _.maprules, asyncrule => {
        throw new Erroraaaaaa;
    };
    return promises;
}

async function doCheck{
    let result;
    try{
         result = await Promise.allawait check;//await获取promises
    }
    catche{
        console.logerror occurs;
    }  
}

下面那样写是对了,不过显得冗余了,由于check函数本身(打扫外部函数的代码)并没有await操纵,真实不用声明为async,可以去失check的async声明。

function check{
    let promises = _.maprules, asyncrule => {
        throw new Erroraaaaaa;
    };
    return promises;
}

async function doCheck{
    let result;
    try{
         result = await Promise.allcheck;
    }
    catche{
        console.logerror occurs;
    }  
}

或许改成如许,把Promise.all写在check里,我以为如许更好。

async function check{
    let promises = _.maprules, asyncrule => {
        throw new Erroraaaaaa;
    };
    return await Promise.allpromises;
}

async function doCheck{
    let result;
    try{
         result = await check;
    }
    catche{
        console.logerror occurs;
    }  
}

(看完/读完)这篇文章有何感想! 来看看bwin2299必赢亚洲是怎么评论的吧!

--转载请注明: bwin2299必赢亚洲_www.bwin2299.com_bwin2299必赢亚洲世界顶级公司 » ES7 async await如何catch异常

发表评论

(必填)