回调处理程序不包含字符串

用户名

我正在使用此代码:

if (msg[0] == '!web')
{
    var result = '\x032[\x02status\x02]\x03 Web: ';

    checkPortTCP('127.0.0.1', 80, function() {
        result += JSON.stringify(this).slice(1, -1);
    });

    bot.say(channel, result);
}

当我在频道中键入!web时,结果是:

 [status] Web: 

没有实际的输出。

checkPortTCP:

function checkPortTCP(host, port, cb)
{
    net.createConnection(port, host).on("connect", function(e) {
        cb.call("online");
    }).on("error", function(e) {
        cb.call("offline");
    });
}

我正在为IRC做一个状态机器人。最终结果应该是:Web:在线/离线

result += JSON.stringify(this).slice(1, -1);

应该合并结果变量,然后在我的频道中说出来。但是由于某种原因,它不能连接字符串。

谢谢!

奥列格

发生问题是因为checkPortTCP回调不立即执行,而是有一定延迟,因此在您的示例中bot.say(channel, result);执行之前 result += ...

尝试粘贴bot.say(channel, result);checkPortTCP回调中。因此它将是:

var result = '\x032[\x02status\x02]\x03 Web: ';

checkPortTCP('127.0.0.1', 80, function() {
    result += JSON.stringify(this).slice(1, -1);
    bot.say(channel, result);
});

更新资料

如果要检查多个服务,可以编写如下内容:

checkPortTCP('127.0.0.1', 80, function() {
    result += JSON.stringify(this).slice(1, -1);

    checkPortTCP('127.0.0.1', 81, function() {
        result += JSON.stringify(this).slice(1, -1);

        bot.say(channel, result); 
    });
});

有两项服务检查,但您可以拥有更多服务。您只需要将一个检查插入另一个检查中,并在最后一个回调调用bot.say方法中

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

回调处理程序不包含字符串

来自分类Dev

jQuery回调处理

来自分类Dev

MQTT回调处理

来自分类Dev

在jquery回调处理程序中保留变量

来自分类Dev

javascript类中的共享回调处理程序

来自分类Dev

自定义XHR回调处理程序

来自分类Dev

Node.js 中的回调处理程序

来自分类Dev

使用 javascript 回调处理程序单击和交换数据

来自分类Dev

不包含字符组的字符串

来自分类Dev

ArrayList不包含字符串

来自分类Dev

Powershell字符串不包含

来自分类Dev

C#字符串不包含

来自分类Dev

字符串包含不匹配

来自分类Dev

“字符串”不包含“连接”的定义

来自分类Dev

程序不返回字符串

来自分类Dev

Python Pandas:字符串包含和不包含

来自分类Dev

我将如何确保字符串不包含字母,并在它包含时保持程序运行?

来自分类Dev

确保字符串不包含特定字符的快速方法

来自分类Dev

RegEx:不包含[字符的字符串的匹配行

来自分类Dev

RegEx:不包含[字符的字符串的匹配行

来自分类Dev

Oracle查询以查找不包含字符的字符串

来自分类Dev

如何处理包含字符代码的字符串?

来自分类Dev

片段异步接口回调处理

来自分类Dev

使用异步回调处理事件

来自分类Dev

如何在SWIFT中实现Objective-C回调处理程序?

来自分类Dev

使用Swift回调处理程序时无法通过平台通道返回值

来自分类Dev

从gcm迁移到fcm后未触发FCM回调处理程序

来自分类Dev

PHP搜索和回显包含字符串的数组

来自分类Dev

如何回显包含函数的字符串?