gpt4 book ai didi

javascript - 无法读取测试中未定义的属性 'http' - Angular 2+

转载 作者:行者123 更新时间:2023-12-01 01:50:04 25 4
gpt4 key购买 nike

尝试为我的测试获取新的 token ,但很难找到原因......

我不确定这是否是最好的方法,或者我是否应该 mock 它,但这是我现在想要做的方式......

我收到的错误是:

TypeError: Cannot read property 'http' of undefined
at getValidToken src/app/services/auth/auth.service.spec.ts:15:17)
at Suite.<anonymous> src/app/services/auth/auth.service.spec.ts:31:22)
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke node_modules/zone.js/dist/zone.js:388:1)
at Zone.push../node_modules/zone.js/dist/zone.js.Zone.run node_modules/zone.js/dist/zone.js:138:1)
at Suite.<anonymous> node_modules/zone.js/dist/zone-testing.js:491:1)
at Env.jasmineEnv.(anonymous function) [as fdescribe] node_modules/zone.js/dist/zone-testing.js:424:1)
at Object../src/app/services/auth/auth.service.spec.ts src/app/services/auth/auth.service.spec.ts:8:1)

最佳答案

this 引用父函数,因此如果您这样做

  function getValidToken() {
return this.http.post(apiBaseUrl + '/auth', postTokenJson)
.then(map(tok => {
return tok;
}));
}

您将收到错误,因为 getValidToken 内没有 http 函数

解决方案是在变量中实例化父“this”,如下所示:

  var pThis=this;
function getValidToken() {
return pThis.http.post(apiBaseUrl + '/auth', postTokenJson)
.then(map(tok => {
return tok;
}));
}

关于javascript - 无法读取测试中未定义的属性 'http' - Angular 2+,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51629397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com