Warning: Trying to access an undefined property within an async function in Typescript

Recently, I have been tackling an issue with my API that is built with TypeScript and NodeJS. The problem arises when my Promises seem to not resolve correctly in the following code snippet:

async function retrieveData() {
        return new Promise((resolve) => {
            resolve(
                prisma.raw<Type>(
                    query
                )
            );
        });
    }

async function fetchData() {
        return new Promise((resolve) => {
            resolve(
                prisma.raw<Type>(
                    query
                )
            );
        });
    }

const dataOne: any = await retrieveData();
const dataTwo: any = await fetchData();

dataOne.property.push(dataTwo[i]);

Despite my efforts, I keep encountering the same error mentioned in the title. Finding a solution to this has proven to be quite challenging.

Answer №1

Upon investigation, it appears that the Prisma library is returning a promise, so it makes sense to await the Prisma result in order for those lines of code to function correctly:

async function fetchData() {
    return new Promise((resolve) => {
        resolve(
            await prisma.raw<Type>(
                query
            )
        );
    });
}
async function fetchMoreData() {
    return new Promise((resolve) => {
        resolve(
            await prisma.raw<Type>(
                query
            )
        );
    });
}
const dataOne: any = await fetchData();
const dataTwo: any = await fetchMoreData();
dataOne.property.push(dataTwo[i]);

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Tips on maintaining consistent language between two Angular components for a father and son relationship

I am facing an issue with language selection in my Angular project. I have two components, home.components (father) and room.component.ts (son), which support both English and Spanish languages. When I switch the language in the room component and then na ...

Uncovering the enum object value by passing a key in typescript/javascript

How can I retrieve the value of an enum object by passing the key in typescript? The switch case method works, but what if the enum object is too long? Is there a better way to achieve this? export enum AllGroup = { 'GROUP_AUS': 'A' &a ...

New data field is created with AngularFire2 update instead of updating existing field

I am facing an issue with updating a Firestore model in Angular 6. The model consists of a profile name and a list of hashtags. The "name" is stored as the value of a document field, while the "hashtags" are stored as keys in an object. However, every time ...

Tips for integrating tooltips in a dynamic highcharts chart

This image shows the desired final output View Highcharts here and I am looking to merge the date and stock value in a single tooltip, how can this be achieved? highcharts ...

Accessing HP ALM with REST and JavaScript on a local server: A step-by-step guide

I am trying to access ALM using locally written JavaScript in the browser (IE11, Firefox) through the REST API, but I am unable to login. Below is the code snippet where I am attempting to request the LWSSO cookie with jQuery: var auth = btoa(USER+":"+PAS ...

Inquire about Javascript appendChild Function

As I dive into learning JavaScript, I encountered an issue with my code. I have created a button that, when clicked, should append some text to all paragraphs on my page. However, for some reason, it's not working as expected. Here's my code: &l ...

"Delve into the art of utilizing negative space between elements with

Looking to implement hover detection between rows in a grid container, rather than on individual items. The number of items in the container and per row may vary. https://i.sstatic.net/yBgKI.png It's important to note that the item count in the cont ...

Is there a method for decreasing the expected conv2d_Conv2D1_input from 4 dimensions to 3?

Issue: An error message states that conv2d_Conv2D1_input is supposed to have 4 dimensions, but the array provided has a shape of [475,475,3] However: The inputShape is configured as [475,475,3] Upon inspection, tensors exhibit the shape [475,475,3] Err ...

What causes scope to be undefined in Angular?

Using ionic to develop a hybrid app has been a smooth experience, especially with android! This is my login HTML: <body ng-app="starter"> <head> <script src="phonegap.js"></script> </head> <ion-header-ba ...

Utilizing Salesforce and DocuSign: A guide to automatically filling in the recipient of my envelope through DocuSign with the contacts from my records

In my Salesforce work, I'm currently customizing the Quote object. The default button labeled "Send with DocuSign" is already included on the Quote layout. My goal is to automatically populate the recipient of the DocuSign envelope with the contact(s) ...

Choosing onSelect is quicker than opting for click

Utilizing the autosuggestion plugin with the onSelect option that changes values in other fields is causing an issue. Everything works fine initially when selecting an item, but when clicking on the input field with the .auto class for the second time (whe ...

Tips on enhancing Ajax requests with jQuery and deferred objects

Currently, I have implemented four or more ajax rest calls within the $(document).ready(function(){} function. To handle this situation, I resorted to adding .done() to the largest call as a temporary solution. While it is "working," I am looking to enha ...

Implement a dropdown menu in Vue.js using data fetched from an ajax request

I am looking to utilize ajax calls in conjunction with vue.js to dynamically populate the options for a drop-down menu. Here's an example of what I currently have: <select v-model="selected"> <option v-for="option in options" v-bind:valu ...

Simple steps to create a stylish modal popup using CSS and JavaScript

I recently created a simple code snippet to generate a modal highlight for an element. card.click(function(){ cloak.show(); var cardClone = card.clone(); cloak.append(cardClone); cardClone.css({ position: 'absolute', ...

Exploring the syntax of ReactJS state management with setState

Trying to wrap my head around the following syntax in my React app. I am looking to understand how the code inside setState() works. this.getSomePromise().then( // resolve callback function someImg => this.setState(prevState => ( ...

Issue with React Hot Toast not displaying properly due to being positioned behind the <dialog>

The Challenge of Toast Notifications Visibility with <dialog> Element tl;dr When utilizing the native dialog.showModal() function, the <dialog> element appears to consistently remain on top, which causes toast notifications to be obscured by ...

I'm not entirely sure why I keep getting the error message stating "Cannot read property 'innerHTML' of null"

Having an issue with my JavaScript code where I am trying to insert a new table row into the HTML but keep getting an error message that says "Uncaught TypeError: Cannot read property 'innerHTML' of null" <!DOCTYPE html> <html lang=" ...

Creating dynamic routes for custom locales in Next.js

I'm currently working on a Next.js application with internationalization functionality using next-i18next. Most of my site's pages have been generated in both English and French, except for dynamic routes (like blog/[id]/[blog-title]). For these ...

What is the best way to deduct pixels from numbers using JavaScript?

Currently, I am attempting to adjust the height of the footer based on the height of another div element. My approach involves utilizing the .css("height") function. However, I am encountering difficulty as the function does not seem to return the value i ...

This code snippet, document.location.search.replace('?redirect=', '').replace('%2F', ''), is failing to execute properly in Firefox

The functionality of document location search replace redirect to another page works in Chrome, however, document.location.search.replace('?redirect=', '').replace('%2F', ''); it does not work in Firefox; instead, ...