function jsonPost(url, data) { return new Promise((resolve, reject) => { var x = new XMLHttpRequest(); x.onerror = () => reject(new Error('jsonPost failed')) //x.setRequestHeader('Content-Type', 'application/json'); x.open("POST", url, true); x.send(JSON.stringify(data)) x.onreadystatechange = () => { if (x.readyState == XMLHttpRequest.DONE && x.status == 200){ resolve(JSON.parse(x.responseText)) } else if (x.status != 200){ reject(new Error('status is not 200')) } } }) } var send = document.getElementById('send'); var nick = document.getElementById('nick'); var mes = document.getElementById('message'); send.onclick = function(){ var obj = { func: "addMessage", nick: nick.value, message: mes.value, } jsonPost("http://students.a-level.com.ua:10012", obj); } var mesInd = 0; var smiles = { ':)' : 'http://www.kolobok.us/smiles/light_skin/diablo.gif', ';)' : 'http://www.kolobok.us/smiles/light_skin/hunter.gif', ':(' : 'http://www.kolobok.us/smiles/light_skin/dash3.gif' } var interval = setInterval(() => { var obj2 = { func: "getMessages", messageId: mesInd, } jsonPost("http://students.a-level.com.ua:10012", obj2) .then((res) => { console.log(res) var divG = document.getElementById('get'); mesInd = res.nextMessageId; for(i=0;i`); } newMes.innerHTML = `${nick} : ${message} :${img}`; divG.prepend(newMes); } }) },1000); // asynk await