Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么拒绝先前的承诺会阻止执行后续承诺和后续任何代码? 让jj=Promise.resolve('value')) 让oo=新承诺((解决、拒绝)=>{ 设randNo=Math.floor(Math.random()*87) 如果(随机数_Javascript_Asynchronous_Promise_Async Await - Fatal编程技术网

Javascript 为什么拒绝先前的承诺会阻止执行后续承诺和后续任何代码? 让jj=Promise.resolve('value')) 让oo=新承诺((解决、拒绝)=>{ 设randNo=Math.floor(Math.random()*87) 如果(随机数

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

大家好,我正在学习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('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')
}