Javascript 为什么拒绝先前的承诺会阻止执行后续承诺和后续任何代码? 让jj=Promise.resolve('value')) 让oo=新承诺((解决、拒绝)=>{ 设randNo=Math.floor(Math.random()*87) 如果(随机数
大家好,我正在学习JS中的承诺和异步执行。我想知道为什么拒绝oo承诺会阻止执行jj承诺以及任何遵循它的代码?感谢您,原因与抛出错误会阻止执行其后的任何代码的原因相同:Javascript 为什么拒绝先前的承诺会阻止执行后续承诺和后续任何代码? 让jj=Promise.resolve('value')) 让oo=新承诺((解决、拒绝)=>{ 设randNo=Math.floor(Math.random()*87) 如果(随机数,javascript,asynchronous,promise,async-await,Javascript,Asynchronous,Promise,Async Await,大家好,我正在学习JS中的承诺和异步执行。我想知道为什么拒绝oo承诺会阻止执行jj承诺以及任何遵循它的代码?感谢您,原因与抛出错误会阻止执行其后的任何代码的原因相同: let jj = Promise.resolve('value') let oo = new Promise((resolve, reject) => { let randNo = Math.floor(Math.random() * 87) if(randNo < 4) { resolve('r
let jj = Promise.resolve('value')
let oo = new Promise((resolve, reject) => {
let randNo = Math.floor(Math.random() * 87)
if(randNo < 4) {
resolve('resolved')
} else {
reject('rej')
}
})
async function kk () {
console.log(await oo)
console.log(await jj)
console.log('async')
}
console.log('synchronous')
kk()
拒绝的承诺类似于抛出异常,只是它是异步发生的。如果您需要捕获拒绝,您可以这样做:
function k () {
throw 'rej'
console.log('value');
}
k();
基本上,你可以考虑拒绝一个承诺,就像抛出一个例外。如果它没有被捕获,后续的代码就不会被执行。哦,这很有道理,谢谢你
async function kk () {
try {
console.log(await oo)
} catch (err) {
console.log('caught an error', err);
}
console.log(await jj)
console.log('async')
}