我承诺等待承诺(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编写它?
答案 0 :(得分:2)
有一种更好(更简单)的方式来编写它而不需要try-catch。没有async / await的东西也围绕着Promises。只使用Promises本身。
var yourPromise = getCookie('key').catch(() => getCookie('scope').then(getKeyFromScope));
yourPromise
解析为key
或getCookie('scope')