JSFiddle - React, Tailwind, and code Playground

by neerajdotname

JavaScript

var log = function(msg) {
    $('body').append(msg);
}


var cache = {};
var square = function(number) {

    if (typeof cache[number] === "undefined") {
        log('<p>calculating square of ' + number + ' </p>');
        var dfd = $.Deferred();
        var answer = number * 2;
        dfd.resolve(answer);
        cache[number] = dfd;
        return dfd;
        
    } else {
        log('<p>returning cached value for ' + number + ' </p>');
        return cache[number];
    }
}

square(2).then(function(answer){log('answer: square of 2 is ' + answer)});
square(3).then(function(answer){log('answer: square of 3 is ' + answer)});
square(2).then(function(answer){log('answer: square of 2 is ' + answer)});
square(3).then(function(answer){log('answer: square of 3 is ' + answer)});
square(2).then(function(answer){log('answer: square of 2 is ' + answer)});
square(3).then(function(answer){log('answer: square of 3 is ' + answer)});