Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.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 如何处理未兑现的承诺_Javascript_Es6 Promise - Fatal编程技术网

Javascript 如何处理未兑现的承诺

Javascript 如何处理未兑现的承诺,javascript,es6-promise,Javascript,Es6 Promise,我有一个对象数组,并使用Promise.all将Api调用返回的值映射到每个对象上的特定属性 初始调用如下所示: Promise.all(jobs.map(job => convertItemsl(job))) .then( doSomething() }); }) .catch(err) function convertItemsl (job){ return myApi.getItem(job.id).then( r

我有一个对象数组,并使用Promise.all将Api调用返回的值映射到每个对象上的特定属性

初始调用如下所示:

   Promise.all(jobs.map(job => convertItemsl(job)))
        .then( 
    doSomething()
        });
      })
  .catch(err)

function convertItemsl (job){
  return myApi.getItem(job.id).then( response => {
    const name = response.name ? response.name : ‘’;
    return {
        name: name,
        status: job.status
      };
    }
  )
}
API调用:

  getItem(){
    return super.get('jobs').then(res => res.json());
  }
我遇到的问题是,在某些调用中,Api可能会返回not found


在按照数组对Api进行所有调用之后,我想继续并返回映射对象,不管怎样。

我的猜测是
myApi。getItem
拒绝了它的承诺。你需要以某种方式抓住这种拒绝:

function convertItemsl (job){
  return myApi.getItem(job.id).then( response => {
    const name = response.name ? response.name : ‘’;
    return {
        name: name,
        status: job.status
      };
    }
  ).catch(err => {
    return {
        name: null,
        // err.code or whatever your error looks like, maybe just 404
        status: err.code
    }
  })
}

您能否发布
myApi.getItem
的代码,包括它使用的promise库?如果未找到“returning”(返回),则应以任何方式解决
convertItemsl
中的承诺。只有一些项目未找到。您可以发布
myApi.getItem
的代码,包括它使用的承诺库吗?“预计会有Api返回未找到的情况”-在这些情况下,您想做什么?当Api没有返回find时,它会做什么呢?它会返回其他东西,还是拒绝承诺?它不应该挂起。可能是我的副本实际上是在您提到的同一个地方捕获错误。。。只是没有归还任何东西。我能理解在这种情况下你为什么要退货