【发布时间】:2022-01-04 18:33:26
【问题描述】:
我有这个函数,其中包含一些打字稿。我无法弄清楚为什么没有调用 promise 之后的代码。
export function MSALInterceptorConfigFactory(jsonAppConfigService: JsonAppConfigService): MsalInterceptorConfiguration {
const protectedResourceMap = new Map<string, Array<string>>();
const resource = "asdfd";
jsonAppConfigService.loadConfig()
.toPromise()
.then(()=>{
protectedResourceMap.set('https://graph.microsoft.com/v1.0/me', ['user.read', 'mail.read']);
protectedResourceMap.set(`${jsonAppConfigService.apiEndPoint}api/method1`, [resource]);
protectedResourceMap.set(`${jsonAppConfigService.apiEndPoint}api/method2`, [resource]);
protectedResourceMap.set(`${jsonAppConfigService.apiEndPoint}api/method3`, [resource]);
protectedResourceMap.set(`${jsonAppConfigService.apiEndPoint}api/method4`, [resource]);
protectedResourceMap.set(`${jsonAppConfigService.apiEndPoint}api/method5`, [resource]);
protectedResourceMap.set(`${jsonAppConfigService.apiEndPoint}api/method6`, [resource]);
}
);
return {
interactionType: InteractionType.Redirect,
protectedResourceMap
};
}
Chrome 中的执行似乎直接在这段代码上进行。我在第一个 protectedResourceMap 语句上放了一个断点,但执行从未到达这一点。
看起来很基本 - 但谁能指出我正确的方向?
顺便说一下,这个函数在 web 应用程序的 app.module.ts 文件中。它已被添加到 NgModule 部分,如下所示:
{
provide: MSAL_INTERCEPTOR_CONFIG,
deps: [JsonAppConfigService],
useFactory: MSALInterceptorConfigFactory,
},
谢谢
【问题讨论】:
-
你试过用.catch(error)看看有没有错误吗?
-
为什么需要使用
toPromise?听说过 Angular 自带的来自 rxjs 的Observables? -
不 - 我从未听说过 Observables。您能否详细说明我如何在此示例中使用它们?
-
我会尝试捕捉错误以查看。谢谢
-
@MoufeedJuboqji 请给我一个答案,因为你是对的。有一个我没有显示的错误。谢谢
标签: angular typescript angular11