Ereignis kann ohne JSONstringify nicht gedruckt werden

Ich versuche, den Unterschied zwischen den folgenden Fällen beim Drucken des Ereignisses zu verstehen: Bei web3.js

listenToEvent: function(){
    Contract.deployed().then(function(instance){
      instance.HelloWorld().watch(function(error, event){
        document.getElementById("demo").innerHTML += JSON.stringify(event);

        console.log (Ereignis); //1. Es funktioniert nicht
        console.log (event.args); // 2. Es gibt alle Argumente an
        console.log (event.args.name); // 3. Es funktioniert nicht

      });
    });
  },

  1. console.log (Ereignis); //1. Es funktioniert nicht
  2. console.log (event.args); // 2. Es gibt alle Argumente an
  3. console.log (event.args.name); // 3. Es funktioniert nicht; hier ist name das erste Argument im Ereignis.

Meine Frage ist, wenn das Objekt nicht gedruckt werden kann, warum funktioniert es dann für die 2. Bedingung und wenn es funktioniert, warum schlägt es dann für die 3. fehl.

Um auf die Argumente zuzugreifen, können wir Folgendes verwenden: console.log(JSON.stringify(event.args.name));

Beim Drucken des Ereignisses console.log(JSON.stringify(event)); Es enthält auch die Transaktionsdetails, wie bekomme ich das?

Schätzen Sie jede Hilfe im Voraus.

Verwenden Sie web3 v1.0? Du sagst es geht nicht was meinst du? Protokolliert es nichts oder falsche Daten?
web3 v0.2 und es wird kein Protokoll angezeigt.

Antworten (1)

Ich füge auch Probleme mit watch() auf web3 hinzu, um nach Ereignissen zu suchen.

Aber ich schaffe es, sie zu lösen, indem ich die alternative Methode ( docs ) verwende:

// Or pass a callback to start watching immediately
var event = myContractInstance.MyEvent([{valueA: 23}] [, additionalFilterObject] , function(error, result){
  if (!error)
    console.log(result);
});

Versuchen Sie Folgendes zu ändern:

instance.HelloWorld().watch(function(error, event){

zu

instance.HelloWorld({}, function(error, event){
Danke für die Antwort. Eigentlich kann ich das Ereignisprotokoll abrufen. Ich habe gefragt, was der Unterschied zwischen diesen 3 Fällen ist, die ich erwähnt habe.