javascript - img - ¿Salida temprana de la función?
title css (11)
Tengo una función:
function myfunction() {
if (a == ''stop'') // How can I stop the function here?
}
¿Hay algo como exit()
en JavaScript?
Al parecer puedes hacer esto:
function myFunction() {myFunction:{
console.log(''i get executed'');
break myFunction;
console.log(''i do not get executed'');
}}
Consulte los ámbitos de bloque mediante el uso de una etiqueta: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/label
No puedo ver ninguna desventaja todavía. Pero no parece ser un uso común.
Derivado de esta respuesta: JavaScript equivalente del dado de PHP
El uso de un return
detendrá la función y devolverá undefined
, o el valor que especifique con el comando de retorno.
function myfunction(){
if(a=="stop"){
//return undefined;
return; /** Or return "Hello" or any other value */
}
}
Esta:
function myfunction()
{
if (a == ''stop'') // How can I stop working of function here?
{
return;
}
}
No me gusta responder a cosas que no son una solución real ...
... pero cuando encontré este mismo problema, hice la siguiente solución:
function doThis() {
var err=0
if (cond1) { alert(''ret1''); err=1; }
if (cond2) { alert(''ret2''); err=1; }
if (cond3) { alert(''ret3''); err=1; }
if (err < 1) {
// do the rest (or have it skipped)
}
}
Espero que pueda ser de utilidad para cualquiera.
Si está buscando un script para evitar enviar el formulario cuando se encuentran algunos errores, este método debería funcionar
function verifyData(){
if (document.MyForm.FormInput.value.length == "") {
alert("Write something!");
}
else {
document.MyForm.submit();
}
}
cambiar el tipo de botón Enviar a "botón"
<input value="Save" type="button" onClick="verifyData()">
espero que esto ayude.
Si está utilizando jquery. Esto debería hacer que la función deje de burbujear hasta que la función padre que llama a esto también se detenga.
function myfunction(e)
{
e.stopImmediatePropagation();
................
}
Usando un enfoque un poco diferente, puedes usar try catch
, con la instrucción throw.
function name() {
try {
...
//get out of here
if (a == ''stop'')
throw "exit";
...
} catch (e) {
// TODO: handle exception
}
}
Usted puede simplemente utilizar el return
.
function myfunction() {
if(a == ''stop'')
return;
}
Esto enviará un valor de retorno undefined
a lo que se llame la función.
var x = myfunction();
console.log( x ); // console shows undefined
Por supuesto, puede especificar un valor de retorno diferente. Cualquier valor devuelto se registrará en la consola utilizando el ejemplo anterior.
return false;
return true;
return "some string";
return 12345;
escriba cualquier comando aleatorio que arroje un error, por ejemplo:
exit
o
die:-)
salida(); Se puede usar para ir a la siguiente validación.
function myfunction() {
if(a == ''stop'')
return false;
}
return false;
Es mucho mejor que solo return;