微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 .catch 语句中承诺拒绝后继续:Node.JS

如何解决在 .catch 语句中承诺拒绝后继续:Node.JS

预期行为:

在 .catch 块将错误打印到控制台后,代码将继续

行为:

代码退出程序。

尝试过的方法

我尝试使用退货;声明:那什么也没做。我也尝试使用 continue;语句,出错了。我还尝试将整个内容包装在 trycatch 中,这导致了相同的行为。

代码

function readProxies() {
        const rl = readline.createInterface({
            input: fs.createReadStream(debug.proxy_file),output: process.stdout,terminal: false
        });
        rl.on('line',(line) => {
            var ipPattern = new RegExp(/(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}/g);
            var justIp = ipPattern.exec(line);
            var oneProxy = ip2proxy.getAll(justIp[0])
            if (oneProxy.Is_Proxy == 0) {
                console.log('worked')
                fetch('https://returning-json.workers-sites-examples.workers.dev/',{
                    agent: new ProxyAgent(debug.protocol + '://' + line,{
                        tunnel: true,// If true,will tunnel all HTTPS using CONNECT method
                        timeout: 2000,// Time in milli-seconds,to maximum wait for proxy connection to establish
                    })
                })
                    .then(res => res.text())
                    .then(body => console.log(body))
                    .catch(err => {
                        console.log(err)
                    })
            } else {
                console.log('not worked')
            }
        });

        rl.on('close',() => {
            console.log('closed')
        });
}

解决方法

编辑:derpirscher,谢谢!

打印在控制台上的“关闭”让我了解了正在发生的事情。事实证明,一切都很顺利,我只需要在 catch 语句中放一个 return;,然后用更多的代理填充 debug.proxy_file。其中只有一个通过了第一次检查,所以只有一个被测试是有道理的。感谢您的帮助!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。