如何使用RequireJS所需的库

问题描述 投票:0回答:1

我尝试使用MQTT导入REQUIREJS,但出现错误:

未捕获的ReferenceError:未定义mqtt

我尝试运行的代码在HTML文件中:

HTML

    <script>
    require(["https://unpkg.com/[email protected]/dist/mqtt.min.js"], function (mqtt) {
        console.log("Libraries loaded");
    })
</script>
<script src="../text-to-speech/sub_mqtt.js"></script>

sub_mqtt

    //MQTT Connection
function mqtt_connect() {
    //var mqtt = require('mqtt'); // Should I use it?
    var client = mqtt.connect({ host: 'test', port: port })
    var topic = 'mytopic'

    client.on('message', (topic, message) => {
    });


    client.on('connect', () => {
        client.subscribe(topic);
        console.log("Connected!")
    });
};

mqtt_connect();

[我知道,如果我将此代码复制到第一个script回调中,则可以解决该错误,但是我想在另一个文件中进行操作以避免HTML过于拥挤。

javascript requirejs
1个回答
1
投票
RequireJS是异步模块加载程序,因此您的加载方法错误,因为您不能保证在脚本之前将加载mqtt。

为了确保在mqtt加载后将执行代码,您必须将其作为回调传递给RequireJS。首先,将您的HTML代码修改为:

© www.soinside.com 2019 - 2024. All rights reserved.