Подтвердить что ты не робот

Поставщик "xx" должен вернуть значение из метода $get factory в AngularJs

Я написал angularjs factory, как показано ниже

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

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

    return 
    {
        log: log
    };

});

Но я продолжал получать эту ошибку

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

Я искал ошибку и не нашел решения.

По совпадению я сменил оператор return на этот

return{
    log: log
};

И ошибка ушла!

Есть ли различия между наличием { перед return или на следующей строке?

4b9b3361

Ответ 1

Это называется Автоматическая точка с запятой

В операторе возврата влияет автоматическая точка с запятой (ASI). Терминатор ; между ключевым словом return и допустимым выражением не существует.

return
a + b;

// is transformed by ASI into

return; 
a + b;

Итак, вы должны вставить { перед возвратом и Не на следующей строке.

Ссылка: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/return

Ответ 2

В вашем случае всегда будет возвращено значение не undefined. Но в других случаях проблема может также заключаться в том, что вы возвращаете значение null или undefined из factory.