const fetch = (url) => new Promise((resolve, reject) => { const listener = ({ srcElement: req }) => { req.status === 200 ? resolve(req.responseText) : reject("busted"); }; const req = new XMLHttpRequest(); req.addEventListener('load', listener); req.open('GET', url); req.send(); }); const main = function(strData) { const json = JSON.parse(strData); const metaMatrix = Matrices.buildMetaMatrix(json, "1930"); const chordMatrix = Matrices.buildChordMatrix(json, "1930"); Diagram.build("1930", json, metaMatrix, chordMatrix); } fetch('worldcup.json').then(main);