Tengo un aws lambda escrito en JS (TypeScript) que llama a funciones de diferentes clases. No estoy definido para la variable de productos existentes a pesar de que funciona bien cuando la interfaz de usuario REACT envía una llamada a la función. A continuación se muestra mi código que usa esta palabra clave para hacer referencia al método de otra clase con el objeto actual en el alcance.
Punto de entrada para la 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 statusRealizar validación de UPC existente
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[]; }Después de toda la ejecución puedo ver
This is the exisitingProduct undefinedlo que significa que mi ejecución no llega a ProductServiceClass. ¿Puede alguien señalarme qué está mal o qué falta? También cualquier documentación/referencia para leer más ayudará mucho.
Mi sugerencia para usted es revisar el artículo a continuación:
const results = await pool.snowflake?.execute(query);¿Está seguro de que el copo de nieve no es nulo, porque está aceptando ser indefinido con la ayuda del signo de interrogación?