Javascript js嵌套在catch块中尝试

Javascript js嵌套在catch块中尝试,javascript,asynchronous,promise,try-catch,Javascript,Asynchronous,Promise,Try Catch,我有一个等待承诺的承诺(getCookie)。如果getCookie('key')被拒绝,我将尝试从另一个cookie(作用域)获取密钥。我是这样想的: new Promise((resolve, reject) => { var key, scope; try { key = await getCookie('key'); resolve(key) }

我有一个等待承诺的承诺(getCookie)。如果getCookie('key')被拒绝,我将尝试从另一个cookie(作用域)获取密钥。我是这样想的:

  new Promise((resolve, reject) => {   
         var key, scope;  
         try {
             key = await getCookie('key');
             resolve(key)
         }
         catch(err){
             try {
                 scope = await getCookie('scope');
                 key = getKeyFromScope(scope);
                 resolve(key)
             } catch(err) {
                 reject(err);
             }
         }
    }
但是,嵌套只允许在try块中进行。有没有更好的方法用try/catch编写它?

有一种更好(更简单)的方法不用try-catch编写它。没有异步/等待的东西也围绕着承诺。只使用承诺本身

var yourPromise = getCookie('key').catch(() => getCookie('scope').then(getKeyFromScope));
yourPromise
解析为
,或者解析为
getCookie('scope')引发的错误
有一种更好(更简单)的方法来编写它,而无需try-catch。没有异步/等待的东西也围绕着承诺。只使用承诺本身

var yourPromise = getCookie('key').catch(() => getCookie('scope').then(getKeyFromScope));
yourPromise
解析为
,或者解析为
getCookie('scope')引发的错误

“仅允许在try块内嵌套”-此语句的基础是什么?“仅允许在try块内嵌套”-此语句的基础是什么?