Pregunta El proveedor 'xx' debe devolver un valor del método $ factory en AngularJs


He escrito un angularjs fábrica como abajo

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

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

    return 
    {
        log: log
    };

});

Pero sigo recibiendo este error

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

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

Casualmente, cambié el return declaración a esto

return{
    log: log
};

¡Y el error se fue!

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


32
2018-01-02 07:30


origen


Respuestas:


Se llama Inserción automática de punto y coma

La declaración de devolución se ve afectada por la inserción automática de punto y coma (ASI). No hay terminador de línea ; entre la palabra clave return y la expresión permitida.

return
a + b;

// is transformed by ASI into

return; 
a + b;

Entonces debes insertar { delante de regreso y No en la siguiente línea.

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


42
2018-01-02 07:39



En su caso, siempre habrá un valor no indefinido devuelto. Pero en otros casos, el problema podría ser también que devuelva un valor nulo o indefinido de fábrica.


1
2017-07-07 20:09