MQTTX - ReferenceError:未定义 fetch

MQTTX - ReferenceError: fetch is not defined

提问人:Thomasino73 提问时间:11/9/2023 更新时间:11/9/2023 访问量:25

问:

我正在使用脚本部分编写一个小脚本。代码如下:MQTTXJavaScript

async function handlePayload(value, msgType, index) {
  const object = value
  const d = new Date();
  let time = d.getTime();
  const date = new Date(time);

  // Get the hours and minutes
  const hours = date.getUTCHours();
  const minutes = date.getUTCMinutes();
  const seconds = date.getUTCSeconds();
  const timeX = `${hours + 1}:${minutes}:${seconds}`;
  object.time = timeX
  object.message = "⚠️ Check out our new Raffle! ⚠️";

  const postData = {
    included_segments: ["Total Subscriptions"],
    app_id: ONES_APP_ID,
    contents: { en: "Something went wrong" },
    headings: { en: "❌ - Error" },
    data: { custom_data: "some_value" },
   android_channel_id: ANDROID_CHANNEL_ID,
   ios_sound: "alarm.wav"
  };

  if (msgType === "publish" && object.type === "error") {
      const response = await fetch(API_URL, {
        method: "POST",
        body: JSON.stringify(postData),
        headers: {
          "Authorization": REST_API_KEY,
          "Accept": "application/json",
          "Content-Type": "application/json",
        },
      });
  }

  return JSON.stringify(object);
}

整个脚本都可以工作,除了 ,甚至更好的是,不仅 不起作用,而且 & 不起作用。它们 3 都提供了如下错误。fetchfetchaxiosXMLHttpRequest

ReferenceError:<fetch |公理 |XMLHttpRequest> 未定义

我已经问过人们,但截至今天还没有回应,所以我在你们所有人之前来到这里寻求指导。或者,如果有任何其他方法。该调用在 中起作用。MQTTXPostman

JavaScript Axios XMLhttpRequest MQTT Fetch-API

评论


答:

1赞 hardillb 11/9/2023 #1

fetch实验性的,是在 NodeJS v17.5 中添加的(并在 v18.0 中启用),我猜但看起来 MQTTX 是基于 electron 的,所以仍在运行一个不在正确级别的 NodeJS 引擎(可能是 v16.x)。

其他库(例如 axios)不在运行脚本代码的沙盒范围内。

您将需要 MQTTX 人员回答哪些选项可用于在他们的脚本沙箱中发出 HTTP 请求。

评论

0赞 Thomasino73 11/9/2023
好的,我会等待回复,非常感谢!