romero: "Warte-Schleife" mit return-Werten

Beitrag lesen

Hallo unknown,

Aber vorsicht, das ist schnell zusammengeschustert und soll nur das Prinzip verdeutlichen.

ich habe mal dein Code-Auszug übernommen bzw. es für meine Zwecke abgeändert. Folgendes habe ich zustande bekommen.

		function Ueberpruefen_ob_Daten_vorhanden( list, infile, list_ISSUE_Pruefung )  
		{  
			//--> hier wird das out erstellt  
  
			for( i = 0; i < infile.length; i++ )  
			{  
				out = out.concat( findInList( infile[i] ) );  
			};  
  
			function callback( out )  
			{  
				alert( "gucken" );  
			};  
  
			function Tabellenaufbau( out, callback, ISSUE )  
			{  
				for( var i = 0; i < ISSUE.length; i++ )  
				{  
					ISSUE_Verlangt.push( ISSUE[i].split( "|" )[0] );					  
					ISSUE_Vorhanden.push( ISSUE[i].split( "|" )[1] );  
					ISSUE_Hinweis.push( ISSUE[i].split( "|" )[2] );  
					ISSUE_Verlangt_Buchstaben.push( ISSUE[i].split( "|" )[3] );  
					ISSUE_Vorhanden_Buchstaben.push( ISSUE[i].split( "|" )[4] );  
				};  
				  
				if( ISSUE.length > 0 )  
				{  
					msg( '<br><b>--- ISSUE - Änderungen ---</b><br><br>' );  
					  
					//--> Beginn es Tabellenaufbaus  
  
					table_ISSUE = document.createElement( "table" );  
					...  
					};  
				};  
  
				function ClickHandler( i )  
				{  
					return function()  
					{  
						alert( "na gucke an, das klappt" );  
						  
						var ISSUE_Liste = document.getElementById( "Tabellenkopf_ISSUE" );  
						var ISSUE_Liste_TR = ISSUE_Liste.getElementsByTagName( 'tr' );  
						  
						alert( ISSUE_Liste_TR.length );  
						  
						if( !ISSUE_Liste_TR.length )  
						{  
							alert( "servus" );  
							callback( out );  
						};  
					};  
				};  
				  
				var ISSUE_Liste = document.getElementById( "Tabellenkopf_ISSUE" );  
				var ISSUE_Liste_TR = ISSUE_Liste.getElementsByTagName( 'tr' );  
				var j = 1;  
				  
				for( var i = 0; i < ISSUE.length; ++i )  
				{  
					ISSUE_Liste_TR[1].getElementsByTagName( 'input' )[0].onclick = ClickHandler( i );  
					ISSUE_Liste_TR[1].getElementsByTagName( 'input' )[1].onclick = ClickHandler( i );  
					j++;  
				};  
			};  
			  
			Tabellenaufbau( out, callback, ISSUE );  
			  
			return out;  
		};  
	};

So und nun zu meinem Problem. Das Script stoppt nicht, sondern läuft wie gehabt weiter. Ich verstehe nun das Prinzip von dir, unknown. Du lässt das Script erst dann weiter laufen, wenn alle Zeilen bis auf die Letzte gelöscht sind und ich da eine Entscheidung getroffen habe.

Aber wie bekomm ich in der Funktion callback() die Variable out zurück in die Funktion Ueberpruefen_ob_Daten_vorhanden( list, infile, list_ISSUE_Pruefung )? Weil von da aus übergebe ich ja mittels return out, das out wieder an die vorhergehende Funktion zurück.

Ich habe zwar mittels alert() einige "Stopper" eingebaut um zu schauen ob er bis dahin "kommt", aber bis dahin kommt das Script nicht, sondern fährt wie gehabt durch.

LG Romero