web3 - event.watch выплевывает события в случайном порядке - PullRequest
0 голосов
/ 18 мая 2018

Я наблюдаю за событием:

var events = EthProj.Message({}, { fromBlock: 0, toBlock: 'latest'});
events.watch((error, results) => {

Внутри события я делаю это tempString = ((messages.split(":")[1].split(",")[0] + " (From: " + messages.split(":")[2].split("}")[0]) + ")").replace(/"/g, ''); Что, короче говоря, делает строку из события, давая событие из блока (т.е. это даетсобытие, выполненное в блоке 173).

Затем я устанавливаю текст элемента <h2> для каждого события.Когда это происходит, он устанавливает их в случайном порядке.Что может происходить, это устанавливает их с блока 0 на последний блок, так как это может произойти.

Вот полный код: https://pastebin.com/wGt5kL1Y

var events = EthProj.Message({}, { fromBlock: 0, toBlock: 'latest'});
            events.watch((error, results) => {
                i++;
                messages = "";
                messages = JSON.stringify(results.args);
                if(i === messageToGet) { 

                    if(messages.split(":")[1].split(",")[0] != '""') {
                        console.log(messages.split(":")[1].split(",")[0] + " (From: " + messages.split(":")[2].split(",")[0].split("}")[0].split("}")[0] + ")");
                        tempString = ((messages.split(":")[1].split(",")[0] + " (From: " + messages.split(":")[2].split("}")[0]) + ")").replace(/"/g, '');
                    } else {
                        console.log("(No included text)" + "(From: " + messages.split(":")[2].split(",")[0].split("}")[0] + ")");
                        tempString = (("(no included text) " + " (From: " + messages.split(":")[2].split("}")[0]) + ")").replace(/"/g, '');
                    }
                    if((messages.split(":")[1].split(",")[0] === undefined) || (messages.split(":")[2].split(")")[0] === undefined)) {
                        return;
                    }

                    if(document.getElementById("Message" + placeToSet) != null) {
                        document.getElementById("Message" + placeToSet).remove();
                        if(document.getElementById("hr" + placeToSet) != null) {
                            document.getElementById("hr" + placeToSet).remove();
                        }
                    }

                    if(document.getElementById("Message" + placeToSet) === null) {
                        var newh2 = document.createElement('h2');
                        newh2.setAttribute("id", ("Message" + placeToSet));
                        var text = document.createTextNode(tempString);
                        newh2.appendChild(text);
                        document.body.appendChild(newh2);

                        var newHR = document.createElement('hr');
                        newHR.setAttribute("id", ("hr" + placeToSet));
                    }
                }                
            });
...