数组元素在异步等待查询函数中订阅 MQTT 主题"/>
对于每个数组元素在异步等待查询函数中订阅 MQTT 主题
如果我将 mqttTopics 作为数组同步提供,则以下代码可以正常工作。
如果我尝试将代码(从 mqttTopics 声明之前)包装到异步函数中,以等待承诺的查询响应,则连接未建立,也未记录“订阅成功”。
谁能解释一下为什么不能将它放入这样的函数中,并为我指明以某种方式等待查询的正确方向?
const mqtt = require('mqtt');
let mqttClient = mqtt.connect('mqtt://127.0.0.1:188:1889');
let { singledbentry, refresh } = require("./database.js")
async function mqttSubscribe() {
let mqttTopics = await refresh('SELECT topicname, topictimetable, topicid FROM mqttsubscriptions');
mqttClient.on('connect', function() {
mqttTopics.forEach(element => {
mqttClient.subscribe(element.topicname);
});
console.log('subscribed successfully');
});
mqttClient.on('message', function(topic,message) {
console.log(topic);
console.log(message.toString());
});
}
module.exports = mqttSubscribe;
回答如下:
更多推荐
对于每个数组元素在异步等待查询函数中订阅 MQTT 主题
发布评论