网络编程
位置:首页>> 网络编程>> JavaScript>> Javascript 回调和事件(翻译)(5)

Javascript 回调和事件(翻译)(5)

作者:mingcheng 来源:gracecode.com 发布时间:2009-03-28 11:47:00 

标签:JavaScript框架,回调,事件

-- Split --

在本人看来,原文的作者表述的技术点,除了如何创建健壮的回调系统外,其实还有两条。

其一,就是如何保证在出现异常的时,继续运行期望的代码;其二,就是如何创建互不干扰的“运行环境”。

原文提到的 createEvent 和 setTimeout 都是好办法,只是处理原作者所言在回调系统中,的确使用 createEvent 会比较合适。setTimeout 相对应的详细信息,可移步到 Realazy 兄的相关文章

而即使出错也能继续运行期望的代码,其实可以考虑使用 finally 语句,下面是个例子:

var callbacks = [  function() { console.log(0); },  function() { console.log(1); throw new Error; },  function() { console.log(2); },  function() { console.log(3); }];for(var i = 0, len = callbacks.length; i < len; i++) {    try {        callbacks[i]();    } catch(e) {        console.info(e); // 获得异常信息    } finally {        continue;    }}

这一灵感同样来自 Dean Edwards 文章后的回复,在这里也贴下吧:

function iterate(callbacks, length, i) {    if (i >= length) return;    try {        callbacks[i]();    } catch(e) {        throw e;    } finally {        iterate(callbacks, length, i+1);    }}

最后,留个小问题。谁知道上述的代码中,留言者提出的为什么异常到最后才打印出来不?

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com