Javascript js嵌套在catch块中尝试
我有一个等待承诺的承诺(getCookie)。如果getCookie('key')被拒绝,我将尝试从另一个cookie(作用域)获取密钥。我是这样想的: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) }
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块内嵌套”-此语句的基础是什么?