我对angular4中工厂提供者的参数感到困惑。假设我正在使用这样的工厂供应商
场景1
{
provide: PREFERRED_BOOKS,
useFactory: () => { return 'foo@yahoo.com'; }, deps: [Book, BookService]
}
现在,useFactory 提供程序是一个函数,我们返回一个字符串
情景 2
如果我做同样的事情
{
provide: PREFERRED_BOOKS,
useFactory: preferredBooksFactory(), deps: [Book, BookService]
}
function preferredBooksFactory() {
return 'foo@yahoo.com';
};
我收到编译错误,我不应该收到编译错误,因为我所做的只是将一个函数传递给提供程序
情景 3
当我像这样改变我的功能时,它工作正常
export function preferredBooksFactory() {
return (): string => {
return 'foo@yahoo.com';
};
};
谁能解释一下发生了什么,我错过了什么