Поставщик "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
или на следующей строке?
Ответы
Ответ 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.