JSFiddle - React, Tailwind, and code Playground

JavaScript

function waitForMessage() {
    return new Promise(function (resolve, reject){
        function handler(event) {
            resolve(event);
            window.removeEventListener('message', handler);
        };
        window.addEventListener('message', handler); 
    });
}
document.body.innerHTML = "> ";
function loop(event) {
    document.body.innerHTML += event.data;
    waitForMessage().then(loop);
}
waitForMessage().then(loop);

window.postMessage("Hello", 'http://fiddle.jshell.net');
window.postMessage("World", 'http://fiddle.jshell.net');