TypeScript这个关键字上下文错误-未定义



我有一个用JS (TypeScript)编写的aws lambda,它调用来自不同类的函数。我得到未定义existingproducts变量即使它工作正常时,反应界面发送调用函数。下面是我使用这个的代码关键字引用当前对象在作用域中的其他类的方法。

lambda的入口点

export const handler = async (upload: FileUpload, context: Context) => {
.....code .....
const parser = new ExcelValidator(new LookupService(), new ProductService());
const status = await parser.performExistingUpcValidation(products as Product[], upload, workbook);
return status

PerformExisitingUPCValidation

export class ExcelValidator {
constructor(public lookupService: LookupService, public productService: ProductService) {
}
async performExistingUpcValidation(products: Product[], upload: FileUpload, workbook?: Workbook): Promise<FileStatus> {
...code...
const existingProducts: any[] = await this.productService.getExistingProductsByUpcOrProductCode(productUpcs, productCodes);
console.log("This is the exisitingProduct", existingProducts)
}

ProductServiceClass

export class ProductService {

constructor() {
}
@Query(()=>[Product])
async getExistingProductsByUpcOrProductCode(@Arg("upcs", ()=> [String]) upcs: string[], @Arg("productCodes", ()=> [String]) productCodes: string[]): Promise<Product[]> {
console.log("I came here")
let query = `SELECT * from table
in (${upcs.join(",")})`;
if(productCodes.length){
query += ` OR "productCode" in ('${productCodes.join("','")}')`;
}
const results = await pool.snowflake?.execute(query);
return results as Product[];
}

在所有的执行之后,我可以看到

This is the exisitingProduct undefined

这意味着我的执行没有到达ProductServiceClass。有谁能告诉我哪里错了吗?此外,任何文档/参考资料将有助于阅读更多。

我的建议是看一下下面的项目:

const results = await pool.snowflake?.execute(query);

你是否确信snowflake不是null,因为你接受了问号的帮助下未定义。