1. ryoyakawai

    No comment

    ryoyakawai
Changes in body
Source | HTML | Preview
@@ -89,13 +89,18 @@
const MIDI = { inputs: [], outputs: [] };
startMIDIAccess();
function startMIDIAccess() {
navigator.requestMIDIAccess({sysex:false}).then(successCallback, errorCallback)
- .then(() => {
- //(!!!!....ここに続けて処理を書く....!!!!)
- });
+ .then(devices => {
+ console.log(devices);
+ setDeviceToList('midiinput', devices.inputs);
+ setDeviceToList('midioutput', devices.outputs);
+ })
+ .then(() => {
+ //(!!!!....ここに続けて処理を書く....!!!!)
+ });
function successCallback(midiaccess) {
const pullDevices = dIterator => {
let devices = []
for (let o = dIterator.next(); !o.done; o = dIterator.next()) {
devices.push(o.value)
@@ -111,19 +116,21 @@
function errorCallback() {
console.error('[ERROR] requestMIDIAccess()', error);
}
}
function setDeviceToList(elemId, devices) {
+ console.log(devices);
let elem = document.querySelector('#' + elemId)
for(let i=0; i<devices.length; i++) {
let option = new Option(devices[i].name, devices[i].id);
elem.appendChild(option);
}
}
</script>
</body>
</html>
+
````
##async/awaitを使って
上記と同じ内容をasync/awaitで書き換えました。同期的な処理になって分かりやすくなったと思いませんか?