搜索
程序员 - node.js的domain异常捕获是否能在异步过程中传递出错的上下文数据到监听器?
伊谢尔伦
伊谢尔伦 2017-04-17 11:17:57
[Node.js讨论组]

本人新学 node.js,遇到一些问题,折腾了很久,没有搞出来。

主要是异常捕获的问题。一般同步的会用 try、catch 来捕获,但是有时候遇到异步回调,这时候 try、catch 就不大管用,查了一些文档和资料,知道有个 domain 能够解决捕获异步异常的方法。尽管能捕获异常,但是不知道怎么把上下文的数据传递到 domain 的监听器里去?希望有人能指点下,不胜感激。

这里是写的代码,异常是由更底层的代码抛上来的,产生异常的时候应该是 res.on('data',func),由于是 node.js 底层代码,我不能进行代码操作,只能想办法在自己这一层异常捕获,但是有些数据,比如 content 方法中的 url 需要遇到异常时,进行对应的操作,所以需要将 url 传递到 on 的侦听器。但是这一步想了很多方法都做不到,希望有人能提供一些建议,或者方向。

     //注册一个错误消息器
       var d = $domain.create();
       d.on("error",function(err){
           console.info(err);
       });
     /**

    * 获取请求内容
    */
       this.content = function(url, method) {
               // 发送请求
               var req = http.request(urlInfo, function(res) {
                   res.setEncoding("utf-8");
                   var content = "";
                   res.on('data', function(data) {
                       content += data;
                   });
                   res.on('end', function() {
                       if (res.statusCode && RES_SUCCESS_CODE === res.statusCode) {
                           dosomething();
                       } else {
                           dootherthing();
                       }
                   });
                   d.add(res);
               });
               req.end();
           }
           d.run(onListener);
伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号