Store the output of a function in a variable

Having a javascript file structure that looks like this:

class RandomCtrl {
    constructor(randomService) {
        this.randomService = randomService;
        ...
    }

    $onInit() {
        getData.call(null, this);
    }

    ...

}

function getData(RandomCtrl) {
    ...
}


function getChart(data) {
    if (!data) {
        return;
    }

    const chartOptions = getWeekHourlyOptions(data);

    const allCols = [].concat(chartOptions.dataColumns);
    allCols.push(["x"].concat(_.map(chartOptions.xAxis, element => moment(element).valueOf()));
    const xVals = xAxisValues(chartOptions.xAxis);

    ...
}

...

RandomCtrl.$inject = ['randomService'];

export const Random = {
    bindings: {
        data: '<',
        siteNames: '<'
    },
    templateUrl: randomPageHtml,
    controller: RandomCtrl
};

The objective is to retrieve the value of allCols and assign it to a variable. An attempt was made by adding return allCols; to the end of the getChart() method and calling it within the $onInit() function.

Various methods were tested including:

const wow = getChart();

const wow = getChart(this);

const wow = getChart.call(null, this);

However, all attempts resulted in undefined for the variable 'wow'. Any suggestions on how to resolve this issue?

Answer №1

Here is a helpful code snippet for ensuring a specific action is taken after a table has been fully drawn using the Google Visualization API:

google.visualization.events.addOneTimeListener(table, 'ready', function () {       
        var tmpData = table.getChart();
        // Additional actions can be added here        
});

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

What steps can I take to ensure that the information in my Cart remains consistent over time?

I recently built a NextJS application integrating the ShopifyBuy SDK. My implementation successfully fetches products from the store and displays them to users. Users can navigate to product pages and add items to their cart. However, I encountered an iss ...

AngularJS: Why isn't the value in the controller generated by the service functioning as expected?

HTML: <body ng-controller="NumCtrl as ctrl"> <input type="text" id="textbox" ng-model="ctrl.num"> <h1>{{ctrl.num}}</h1> <h3>Factorial</h3> <p>{{ctrl.showfactorial}}</p> Controller: angular .mo ...

Are there any additional features available in NetSuite that allow for viewing multiple pages within a PDF document?

I'm looking to compile a list of all available pick tickets and then consolidate them into a single PDF file. Unfortunately, I am only able to generate one page per ID. var transactionFile = render.pickingTicket({ entityId: 501, printMode: render.Pri ...

Avoid the need to refresh the HTML content every time there is a change in the Angular $

One of the challenges I'm facing is with a for loop in my JavaScript: for (var i=0;i<2;i++) { $scope.widget = widgets[i]; $scope.header = widgets[i].data.header; $scope.items = widgets[i].data.items; $scope.footer = widgets[i].data ...

How to trigger an update of the useEffect() hook when a button is clicked

I am working with a functional component that contains a button and uses the "useEffect()" hook. My goal is to trigger a re-render of the component, updating the useEffect() hook when the button is clicked. const Emp_list = (props) => { useEffect(() ...

Is it possible that the rows variable is not updating correctly due to an issue with the setState function, resulting in the changes not being displayed in

This code serves a similar purpose to a ToDo List feature. The add button is intended to add an array object to the list of rows, which are displayed in the UI as TextFields through iteration with rows.map. The subtract button should remove the selected ro ...

The Error Message: "404 Not Found - Your Form Submission Could Not

Greetings, I am currently immersing myself in learning NodeJS and the Express framework. However, I have encountered an issue when attempting to submit a form that is supposed to go to the '/users/register' URL. It appears that my app.js is unabl ...

Minimize or conceal iframe

This iframe contains a Google form that cannot be edited. I am looking for a way to close or hide this iframe, either through a button, a popup window button, or without any button at all. The $gLink variable holds the Google form link through a PHP sessio ...

Present timestamp using the date API format of YouTube

I'm working with the YouTube API, which provides uploaded and updated times in this format: 2013-05-13T13:12:42.000Z (ISO 8601). How can I use Javascript or jQuery to get the relative time? Despite trying various sources, the date formatting seems to ...

How to use jQuery to find a specific value in a JSON object

As a beginner in the world of jQuery and JSON, it's evident from my code below how new I am to this. My goal is to have a JSON file where users can input a search term (which will correspond to a key in the JSON file) and have the matching JSON value ...

Retrieving Time Format from JSON Within an Angular.js Application

Whenever I receive app data through an API in JSON format, the time stamps always come back looking less than desirable. They appear like this: 2013-11-25T12:44:02 In my Angular app, I haven't found a straightforward way to format these time stamp ...

Show an image in a specific location on the webpage using JavaScript/jQuery

Is there a way for me to show a visual element at specific coordinates on the browser screen? For example, let's say I have calculated dynamic offsets of { left: 336, top: 378 }, and I would like to display a small line or image at that position. Is ...

Guide on utilizing mongoose for handling multiple increment operations

Currently, I am developing a program that tracks different "accepts" and "denies". In this project, I am utilizing the findOneAndUpdate function from mongoose. However, I am encountering some issues with achieving the desired functionality. The data I am w ...

Span wrapped in a hover effect

I am facing an issue with hover options... What I am looking for is a text in a circle Finally, I achieved the desired look using csswrap Next, I added some jQuery to insert links into all spans with the same class Everything is working fine, except fo ...

Is there a way for me to modify the color of the currently selected button?

I've been attempting to change the color of the active button when clicked, but my CSS class "activePage" isn't doing the trick. Ideally, clicking the "projects" button should turn it red, and clicking the "about" button should change it to red w ...

Ensure that the content remains at the center of the screen, but is dynamic and changes

I have a unique concept I want to experiment with, but I'm unsure of the best approach to take. My idea involves centering content on the screen and instead of having it scroll off and new content scroll in, I would like it to stay centered and smoot ...

Iterating through an array with conditional statements

I am currently considering the best approach to loop through an array in my code before proceeding further. I have some concerns about the link (var link = ... ) and the if statement. Is this the most optimal way to iterate over array1 and compare the val ...

Vue JS - Unable to locate module (datepicker)

Today marks my first time delving into the world of vue.js, and as expected, I've encountered an error that has me stumped. I recently incorporated the v-md-date-range-picker module into my project: (. The setup instructions provided me with the f ...

Acquire the <li> element when it is clicked using vanilla JavaScript

Whenever a user enters a value in an input field, my function automatically adds a <li> element to a <ul>. Additionally, the function assigns the attribute ( onclick="doneToggle" ) to the created <li>. function createListElement() { ...

Ways to identify when text wraps to the next line

I'm working on a navigation menu (.navigation) that I want to hide instead of wrapping onto the next line when the screen width is small. I've been trying to figure out how to use javascript/jQuery to detect when wrapping occurs and hide the navi ...