我写的承诺下这种风格在doc:
Q.fcall(promisedStep1) .then(promisedStep2) .then(promisedStep3) .then(promisedStep4) .then(function (value4) { // Do something with value4 }) .catch(function (error) { // Handle any error from all above steps }) .done();
确保承诺错误太多?
的catch子句将捕获包括错别字任何错误。 然而,根据nodejs dos:
通过的抛在JavaScript中是如何工作的本质,几乎从来没有以任何方式安全地“拿起您离开的地方”,没有泄漏引用,或创造一些其他种类的未定义的脆性状态。应对抛出的错误的最安全方法是关闭该过程。
某种差错就扔出去,如果我们在回调风格编写代码,但不能在承诺的风格
这真是困惑我。在承诺书写时,我应该如何避免泄漏的参考文献。
谢谢〜
如果你有像打开的文件句柄那样需要清理的东西,那么你必须在打开的文件句柄的范围内有一个'.catch()',这样你就可以在引发异常时清除它们。这只是您作为程序员的责任。在nodejs中,文件句柄不会自行清理。与套接字等其他资源一样。 – jfriend00 2014-10-22 02:16:24
在链中的每个范围内,你都必须问自己这个问题 - 如果在这里抛出异常,是否有我需要清理的东西。如果答案是肯定的,那么你必须在那里发现异常。清理完成后,您可以重新抛出异常。 – jfriend00 2014-10-22 02:18:52