const useCapture = true; // capture, bubbling: false var elem = document.getElementsByTagName('button')[0]; elem.addEventListener('click',register,useCapture); let promises = []; promises.push( get_config() ); promises.push( get_keys() ); function register(ev) { console.log('register: %o',ev) let name = document.getElementsByName('name')[0].value; let peerid = document.getElementsByName('peerid')[0].value; let minerid = document.getElementsByName('minerid')[0].value; let account = document.getElementsByName('account')[0].value; let bkreward = document.getElementsByName('bkreward')[0].value; let namep = name.replace(/ /g,'+'); let url = api_url + `register?account=${namep}&bkreward=${bkreward}`; let data = fetch(url).then(resp => resp.json()); console.log('register.data:',data); return data; } Promise.all(promises).then( ar => { let config = ar[0].config; let keys = ar[1].data; console.log('config:',config); console.log('keys:',keys); document.getElementsByName('name')[0].value = keys.identity.name; document.getElementsByName('peerid')[0].value = keys.identity.public; document.getElementsByName('minerid')[0].value = keys.miner.public; document.getElementsByName('account')[0].value = keys.distribution.public; document.getElementsByName('bkreward')[0].value = config.bkreward; }). catch(console.error); function get_config() { let url = api_url + 'config'; return fetch(url).then(resp => resp.json()).catch(console.error) } function get_keys() { let url = api_url + 'getcas?dir=secrets&addr=keys'; return fetch(url).then(resp => resp.json()).catch(console.error) }