【发布时间】:2012-01-12 17:57:51
【问题描述】:
这是node.js中的典型情况:
asyncFunction(arguments, callback);
当asynFunction 完成时,callback 被调用。我看到这种模式的一个问题是,如果asyncFunction never 完成(并且asynFunction 没有内置的超时系统),那么callback 将永远不会被调用。更糟糕的是,callback 似乎无法确定asynFunction 永远不会返回。
我想实现一个“超时”,如果callback 在1 秒内没有被asyncFunction 调用,那么callback 会自动被调用,假设asynFunction 出错了。这样做的标准方法是什么?
【问题讨论】:
-
标准方式是调用
callback总是。 -
你怎么能保证呢?假设服务器死了...
-
@Randomblue:另一台服务器只与您的代码通信,并且不负责直接调用您的回调。
asyncFunction和实际调用callback的部分都在你身边,所以它应该为你做这种错误处理是合理的。
标签: javascript node.js asynchronous