【发布时间】:2021-08-16 22:10:08
【问题描述】:
我有两个工作代码 sn-ps,我想将它们与 if/else 逻辑链接。代码的第一部分从 Web API 接收 JSON 响应。 JSON.TEMPERATURE 是需要的关键变量。
const fetch = require("node-fetch");
const api_url = 'https://www.placeholder_URL.com/api/getTemperature'
fetch(api_url)
.then((response) => {
return response.json();
})
.then((myJSON) => {
console.log(myJSON.TEMPERATURE); // **This returns a number between 8 and 15**
});
代码的第二部分播放一个 MIDI 音符。在下面的例子中,note#60 是中间 C。C# 是 note61,D note62 等等。
let easymidi = require("easymidi")
let output = new easymidi.Output("mindiPort", true)
let sendNote = (noteValue, duration) => {
output.send("noteon", noteValue)
setTimeout(()=> {
output.send("noteoff", noteValue)
}, duration);
}
setInterval(() => {
let noteValue = {
note: 60, // **need to change this number depending on JSON.TEMPERATURE**
velocity: 100,
channel: 1
}
sendNote(noteValue, 500)
}, 2000);
我想要实现的是if/else,其中播放的音符取决于JSON.TEMPERATURE。
类似:
if JSON.TEMPERATURE ==8,玩note60
if JSON.TEMPERATURE ==9,玩note61
else,弹奏音符 55
我还想每 5 秒运行一次 API 请求。
【问题讨论】:
-
令人尴尬的是——我试图用 python 解决这个问题,但我不能。我还在努力学习 Javascript
-
您当前的代码将持续每 2 秒发送一次便笺(每次持续半秒) - 您要这样做还是只发送一次?
-
@Jamiec 请一次。谢谢。
标签: javascript json if-statement fetch-api