javascript - odataclient.query 不是 nodejs 中的函数
问题描述
我的应用程序中有一个函数,它通过调用 ODATA 来返回学生的详细信息。然而,下面的代码返回“this.edmOdataClient.query is not a function”错误。传递给函数的 Id 值为 4B199,9h7dH,ATC3S,fDB5Y,h33Ny,kousB,lTibg,nuGM
下面是我的代码片段
async getStudent(Id) {
try {
if (Id != undefined) {
let index: number;
for (index = 0; index < Id.length; index++) {
const element = Id[index];
console.log("ELEMENT" +element);
this.student = await this.OdataClient.get<any>
(
this.edmOdataClient
.query(`CD_STUDENT`)
.filter(new FilterClause("SECTION").eq("A"))
.andFilter(new FilterClause("ID").eq(element))
.select(["NAME", "GRADE"])
.orderBy("ID")
).then(result => result.value[0])
}
}
return this.student;
}
catch (error) {
logger.info(error.message)
return error;
}
还有一种方法可以检查 result.value.length 吗?当我试图这样做时,我得到了结果未定义的错误
解决方案
this
仅当您的函数属于某个类时才可以调用(另请注意,this
除非您绑定函数,否则箭头函数不会响应)
const externalFunc = () => {
console.log('external func')
}
class MyClass {
constructor () {
this.externalFunc = externalFunc.bind(this)
}
myFuncOne () {
console.log('func one')
}
myFuncTwo () {
console.log('func two')
this.myFuncOne()
}
}
const klass = new MyClass()
klass.myFuncTwo()
// => func two
// => func one
klass.externalFunc()
// => external func
在您的代码中,基本上错误是说getStudent
无法到达edmOdataClient
,因为它没有绑定到this
您的代码在其中运行的任何类都无权访问edmOdataClient
推荐阅读
- python - 使用 Flask import app.module 和 importlib.reload(app.module)
- hibernate - Spring 仅获取数据而不映射到数据库
- python - tensorflow(tf)变量初始化形状错误?
- java - ComponentScan 没有映射 RestControllers
- c - C程序代码将整数拆分为单独的行上的数字,只有循环没有数组
- kotlin - GrpcServerRule 找不到实现
- matlab - 从具有混合数字和字符串的单元格数组计算平均值
- html - 无法在网站上滚动
- scala - Play Framework 2.6:配置 Akka HTTP 日志记录
- python - 按时间戳差异重复熊猫不起作用