Provider'xx'必须从AngularJs中的$ get factory方法返回一个值

Rez*_*eza 32 javascript angularjs

我写了一个angularjs工厂如下

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

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

    return 
    {
        log: log
    };

});
Run Code Online (Sandbox Code Playgroud)

但我一直收到这个错误

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

我用谷歌搜索了错误,我找不到任何解决方案.

巧合的是我把return声明改成了这个

return{
    log: log
};
Run Code Online (Sandbox Code Playgroud)

错误消失了!!

{在前面return或下一行之间有什么区别吗?

Nae*_*ikh 42

这称为自动分号插入

return语句受自动分号插入(ASI)的影响.;return关键字和允许的表达式之间没有行终止符.

return
a + b;

// is transformed by ASI into

return; 
a + b;
Run Code Online (Sandbox Code Playgroud)

所以你必须{在返回前插入而不是在下一行插入 .

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