Monday, June 3, 2024
 Popular · Latest · Hot · Upcoming
72
rated 0 times [  73] [ 1]  / answers: 1 / hits: 25181  / 10 Years ago, fri, january 2, 2015, 12:00:00

I have written an angularjs factory as below



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

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

return
{
log: log
};

});


But I kept getting this error




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




I googled about the error and I couldn't find any solution.



Coincidentally I changed the return statement to this



return{
log: log
};


And error is gone!!



Is there any differences between having { in front of return or at the next line?


More From » angularjs

 Answers
45

This is called Automatic semicolon insertion



The return statement is affected by automatic semicolon insertion (ASI). There is no line terminator ; between the return keyword and the expression allowed.



return
a + b;

// is transformed by ASI into

return;
a + b;


So you must insert { in front of return and Not at the next line.



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


[#68330] Tuesday, December 30, 2014, 10 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
quinn

Total Points: 160
Total Questions: 86
Total Answers: 101

Location: Belarus
Member since Tue, Mar 14, 2023
1 Year ago
quinn questions
;