Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.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_Node.js_Promise - Fatal编程技术网

Javascript 当一个回调不返回任何承诺时,承诺链是如何工作的?

Javascript 当一个回调不返回任何承诺时,承诺链是如何工作的?,javascript,node.js,promise,Javascript,Node.js,Promise,当.then缺少返回承诺对象的适当函数时,处理将继续到链的下一个环节。因此,链条可以安全地省略每一个手柄,直到最后一个。接住。同样地,.catch实际上只是一个.然后没有一个用于handlefulled的槽 考虑到: 方法promise.then、promise.catch和promise.finally用于将进一步的操作与已解决的承诺相关联。这些方法还返回一个新生成的promise对象,该对象可以选择性地用于链接 当一个回调没有返回任何承诺时,承诺链是如何工作的?如果承诺链返回一个承诺,它将调

当.then缺少返回承诺对象的适当函数时,处理将继续到链的下一个环节。因此,链条可以安全地省略每一个手柄,直到最后一个。接住。同样地,.catch实际上只是一个.然后没有一个用于handlefulled的槽

考虑到:

方法promise.then、promise.catch和promise.finally用于将进一步的操作与已解决的承诺相关联。这些方法还返回一个新生成的promise对象,该对象可以选择性地用于链接


当一个回调没有返回任何承诺时,承诺链是如何工作的?

如果承诺链返回一个承诺,它将调用下一个承诺,然后捕获该承诺的已解决或已拒绝的值。如果没有,那么它将使用返回值调用next then,如果没有返回,则调用undefined:

const myPromise=myApiCall.thenresponse=>{ 返回另一个最重要的回复,回复Promiser回复; }.ThensSecondResponse=>{ //这是另一个APICALL的解析值。。。 返回第二响应; }.catcherr=>{ //此错误可能是因为myApiCall失败,或者是因为另一个ApicAll…失败 } const myPromise=myApiCall.thenresponse=>{ 返回42 }.thenvalue=>{ //值为42 }.catcherr=>{ //此错误(如果存在)是因为myApiCall失败 } 推断一下,让我们从第一次回调中不返回任何内容:

const myPromise=myApiCall.thenresponse=>{ //请注意,我们在这里不退还任何东西 //我们只调用一个函数,即返回未定义的函数 做些工作,什么也不做; }.thenvalue=>{ //值未定义,因为上一个`then'没有返回任何内容` }.catcherr=>{ //此错误(如果存在)是因为myApiCall失败 } 为了好玩,下面是在异步函数中使用wait时的样子:

常量myFunc=async=>{ 试一试{ const response=等待myApiCall; const secondResponse=等待另一个返回Promiser响应的最高级响应; 返回第二响应; }捕手{ //此错误可能是因为前两个等待的呼叫中的任何一个失败 } }
链上的承诺捕获任何异常,如果它截获一个异常,它将使异常失效,如果它收到任何其他值,它将使异常成功。当a.then缺少适当的函数时,这句话不是指回调不返回承诺的情况,而是指回调不传递的情况,例如.ThenOnCompleted、null、.thennull、onRejected或.thennull、null。@Bergi这是提供信息的。非常感谢。请写一个答案。当a。那么缺少。。。。段落不是最好的。我不确定我是否想从中学习承诺。