Rene Rose: setTimeout für eine Objektinterne Funktion?

Beitrag lesen

Hallo Community!

Ich habe ein Problem mit dem Verständnis, bzw. der Anwendung von "setTimeout()". ich habe ein Objekt, das eine Datei ausliest und die enthaltenen Daten zerlegt. Die Daten werden über Eigenschaften nach außen zugänglich gemacht. Ich möchte, dass die Lesefunktion regelmäßig eigenständig startet, so dass ich das Objekt jederzeit nach aktuellen Daten abfragen kann. Soweit mein Idealbild.

Ich habe zwei Methoden eingefügt, die das Objekt praktisch starten und wieder anhalten sollen. Leider liefert mit der Aufruf der "setTimeout()" Funktion immer einen Fehler, ohne nähere Beschreibung ("Objekt erforderlich in Zeile 0"). Nachdem ich eine Weile experimentiert habe, scheint es so zu sein, dass die Funktion "setTimeout" die objektinterne Funktion "ParseData()" nicht findet. Eine Bastellösung wäre, das Objekt von außen regelmässig zu refreshen. Eleganter wäre es jedoch, dass es eigenständig "tickt". Wo liegt das Problem, bzw. mein Fehler?

function InfoReader( objPathHandler )
 {
  var arrStringParts = Array();
  var strSymbolName, strTimeFrame, strStartTime, strStartDate, strPositionInfo;
  var strTickSize, strLastClose, strFileName, strFileData;

strFileName = GetBuildPath( objPathHandler.DataPath, objPathHandler.InfoFile );

//Funktion liest den Inhalt einer Datendatei und splitte die Informationen auf
  function ParseData()
   {
    try { strFileData = folderBR.Read( strFileName, ".txt" ); }
     catch (err) { strFileData = "" }
    arrStringParts = strFileData.split(";");

if ( arrStringParts.length >= 0 )
     {
      strSymbolname = arrStringParts[0];
      strTimeFrame = arrStringParts[1];
      strStartTime = arrStringParts[2];
      strStartDate = arrStringParts[3];
      strPositionInfo = arrStringParts[4];
      strLastClose = parseFloat(arrStringParts[5].replace(/,/, "."));
      strTickSize = parseFloat(arrStringParts[6].replace(/,/, "."));
     }
    setTimeout( "ParseData()", 1000 );
   }

//Methode startet das periodische lesen der Daten
  this.Start = function()
   { ParseData(); }

//Methode beendet das periodische Lesen der Daten
  this.Stop = function(){ clearTimeout("ParseData()"); }

this.Symbol = strSymbolName;
  this.TimeFrame = strTimeFrame;
  this.StartTime = strStartTime;
  this.StartDate = strStartDate;
  this.Position = strPositionInfo;
  this.Last = strLastClose;
  this.TickSize = strTickSize;
 }