JavaScript loop causing stack overflow

My primary programming language is LUA, but recently I've been trying to work on a project in JavaScript with the help of a friend. However, I'm confused as to why this loop keeps exceeding the call stack.

var myVar;
(function loop() {
    for (var x = 0, ln = 3; x < ln; x++) {
        myVar = setTimeout(function(i) {
            console.log(i);
        }, x * 333, x);
        clearTimeout(myVar);
    }
    loop();
}());

Answer №1

Creating a recursive loop with a progressive delay is a common task in programming. This functionality can be achieved in JavaScript by setting up an edge condition that stops the loop when a certain condition is met, and then recursively calling the function. One way to implement this is by using a timeout function without the need to clear it unless necessary. Here is an example of how you can achieve this:

var start = 0;
var ln = 3;

(function loop(i) {
  if (i > ln) return // edge condition
  setTimeout(() => {
    console.log(i);
    loop(i + 1); // recurse
  }, i * 333, i);
})(start);

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

json keys with spaces

I need help with a JSON structure I am working with: data: { First Name: "Robert", Last Name: "Smith" } I'm trying to access the data using javascript like this: "data.First Name" I know this is incorrect syntax. How can I extract the information fr ...

Add C# iteration with JavaScript on ASP.NET directories

I need help extracting all filenames from a specific folder on the server, and then adding them to a JavaScript array. The functionality should mimic ASP.NET C#'s Directory.GetFiles method. I have already initialized an array and now just require as ...

Tips on transmitting JSON data from a Spring controller to JavaScript

Does anyone have experience with sending a JSON object from a spring controller to JavaScript and receiving it using AJAX? I would appreciate any guidance on how to accomplish this. ...

Initiate node.js execution upon system boot

Just diving into node.js. In the process of setting up integration tests for a node.js app using mocha, I found this helpful guide: Here's how I created a server: var http = require('http'); this.server = http.createServer(function (req, ...

Is it possible to combine and compress HTML/CSS/JS files using npm?

When organizing my CSS code and directory folders, I like to use multiple stylesheets to keep things tidy. However, it appears that @import is not recommended in CSS. Instead, combining your code (as @import does) and minifying it by removing comments, spa ...

angular add to the end the most recent compiled element

Looking to incorporate a custom event into the fullcalendar plugin. eventRender: function(event, eventElement) { scope.tmp = { time: $time, $title: $title, crest: event.clubCrest, statusKey: statusKey }; scope.data ...

Guide to utilizing JavaScript in Bootstrap

Welcome! I'm eager to delve into the world of webjars. To kick things off, I've included these dependencies in my Gradle project: implementation group: 'org.webjars', name: 'webjars-locator', version: '0.52' implemen ...

Retrieving search results in JSON format from a website with NodeJs

I recently started learning Node and attempted to retrieve a website's search result in JSON format using Node. I experimented with the HTTP chunk method and Express GET, but unfortunately, was unable to find a solution. The specific URL I was working ...

MongoDB was successfully updated, however the changes are not being displayed on the redirected

I have implemented the delete action in Node/Express as a web framework, where it is structured within a higher-level route: .delete((req, res) => { db.collection('collection-name').findOneAndDelete({ topic_title: req.body.topic_title}, ...

Learn how to display JSON data sent from the server on a webpage

I'm just starting out with jquery. I have an api called '/categories' that gives me a json object of categories. The response looks like this: [ { name: "Laptop deals", slug: "laptop-deals", imageURL: "image.jpg", id: 1 }, { name: "Fashion ...

AJAX request failed to elicit a response

Recently, I've been facing an issue with my AJAX call to the API. Previously, it was functioning correctly and returning a response JSON. However, now I am unable to retrieve any JSON object. When using Mozilla, no error is shown but the response JSON ...

The returned type of intersected functions in Typescript does not match the inferred type

While attempting to extract the return type of an intersected request, I encountered a discrepancy between the return type and the inferred type. Check out the shortened URL for more details: https://tsplay.dev/mAxZZN export {} type Foo = (() => Promis ...

Differences in scope variables between Angular 1 and Angular 2

When working with scope.$on, scope.$watch, scope.$broadcast, $scope.$apply, $scope.$emit, etc, in Angular 1, I found that these properties are not valid in Angular 2. Can anyone recommend alternative methods for achieving similar functionality in Angular ...

Generate a random number not found within the given array

Hopefully, I can explain this clearly. Imagine I have 8 boxes with the class .boxA, each containing a numeric value generated from JavaScript: <div class="tfooter"> <div class="boxA" id="bx3" value="3">3</div> <div class="box ...

The Angular 2 application functions perfectly when running locally, but encounters issues when running on an ec2 instance

When trying to upload an Angular 2 application to an AWS EC2 t2.small instance, it is not working as expected, even though it runs successfully in a local server. Node version: v7.0.0 NPM version: 3.10.8 There has been an EXCEPTION: Uncaught (in prom ...

Angular JS and the use of hashtags

Currently, I am using AngularJs for the front end and Loopback for my backend API. One of the features I'm looking to incorporate into my web app is hashtag(#) functionality. The string I am working with is $scope.postText. I am looking for a way to s ...

The value of ng-repeat list in AngularJS does not update when its value is changed by an ajax call

I am completely perplexed. Why doesn't my ng-repeat update when there is an ajax call that changes its value? I have searched through many questions and answers here, but none of them address the issue with the ajax call. Here is the HTML: <div c ...

Efficiently processing a JSON object datalist in the AJAX success callback using JavaScript

I am having trouble parsing a JSON datalist in my AJAX success function. I have passed an object containing a list of data using JSON from the controller to the view, and now need help parsing the JSON object in the AJAX success function. Below is the code ...

Choose an image for a better view with the use of HTML and JavaScript/JQuery

Requesting assistance in creating a simple code using plain html5 and JavaScript/jQuery (without plugins) that will enlarge an image upon clicking on it from a list of images. Here is the HTML snippet provided: <!-- Large image holder --> & ...

Tips on how to customize/ng-class within a directive containing a template using replace: true functionality

To keep replace: true, how can ng-class be implemented on the directive below without causing conflicts with the template's ng-class? This currently results in an Angular error: Error: Syntax Error: Token '{' is an unexpected token at co ...