He escrito un angularjs de fábrica de la siguiente

module.factory('LogService', function () {

    function log(msg) {
        console.log("Rahkaran:" + new Date() + "::" + msg);
    }

    return 
    {
        log: log
    };

});

Pero yo seguía recibiendo este error

Provider 'LogService' must return a value from $get factory method

Busqué en google sobre el error y no pude encontrar ninguna solución.

Casualmente he cambiado el return declaración a este

return{
    log: log
};

Y error se ha ido!!

¿Hay alguna diferencia entre tener { en frente de return o en la línea siguiente?

InformationsquelleAutor Reza | 2015-01-02

2 Comentarios

  1. 42

    Esto se llama Automática de punto y coma inserción

    La instrucción return es afectada por la automática de punto y coma de inserción (ASI). No hay terminador de línea ; entre la palabra clave return y la expresión permitido.

    return
    a + b;
    
    //is transformed by ASI into
    
    return; 
    a + b;

    Por lo que debe insertar { en frente de retorno y No en la línea siguiente.

    Referencia:
    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/return

  2. 1

    En su caso, habrá siempre un no-indefinido valor devuelto.
    Pero en otros casos el problema puede ser también que haces se devuelve null o undefined valor de la fábrica.

Dejar respuesta

Please enter your comment!
Please enter your name here