Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.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 when.js与Q.js';s";完成();?_Javascript_Node.js_Promise_Q_When Js - Fatal编程技术网

Javascript when.js与Q.js';s";完成();?

Javascript when.js与Q.js';s";完成();?,javascript,node.js,promise,q,when-js,Javascript,Node.js,Promise,Q,When Js,除了then(),Q.js还有一个done()通常在承诺链的末尾调用,如下所示: promise .then(callback) .then(callback) .done(callback); 这将捕获以前的then()s未处理的任何拒绝,并将处理then()回调中引发的任何异常 这里面有类似的东西吗?如何处理回调中引发的异常?如果你从未注册过拒绝处理程序呢?据我所知,when.js中没有done。事实上,如果您阅读了最后一段专门介绍的内容,就会提到一个名为monitor的工具,它: […]

除了
then()
,Q.js还有一个
done()
通常在承诺链的末尾调用,如下所示:

promise
.then(callback)
.then(callback)
.done(callback);
这将捕获以前的
then()
s未处理的任何拒绝,并将处理
then()
回调中引发的任何异常


这里面有类似的东西吗?如何处理回调中引发的异常?如果你从未注册过拒绝处理程序呢?

据我所知,
when.js
中没有
done
。事实上,如果您阅读了最后一段专门介绍的内容,就会提到一个名为monitor的工具,它:

[…]监视承诺状态转换,然后在满足某些条件时采取操作,例如登录到控制台,例如当承诺已被拒绝但未附加onRejected处理程序时,因此拒绝将保持沉默


when.js中没有
done


我建议在他们的问题跟踪器中请求它,同时使用其他提供
done
的库,当
现在有
.done()
以及
.catch()
.finally()
时,它看起来像


好的,谢谢。我想我也可以使用
.others()
来捕获错误的拒绝,但从文档中不清楚这是否也会捕获以前绑定的回调中引发的任何异常。据我所知,拒绝是沿着承诺链传递的。因此答案是肯定的,它将捕获以前提出的异常。在基准测试中,当.js大于q.js时,因此丢失
done()
可能是值得的。您能推荐另一个支持类似
done()
的fast库吗?我认为您可以检查这个库,它很快,几乎从一开始就完成了
done
。我的眼睛
完成了
是promise库的必备品。