Why Doesn’t My Callback Work?

Can anyone kindly advise why my callback doesn’t work? Pretty sure I am doing something dumb.

I’m looking for iwillbeawebdev.other() to fire after the .each function has finished on iwillbeawebdev.load(). However iwillbeawebdev.other() runs before the each function has finished.

var iwillbeawebdev = (function() {

var that = {};

that.init = function () {

  iwillbeawebdev.load(function() {
  	iwillbeawebdev.other();
  });

}

return that;

})();

iwillbeawebdev.load = (function(callback) {
var speed = 33;
var delay = 1000;
var xElement = 0;
$(".animate-strikethrough").each(function () {
var this = (this);
var text = $this.text();
var textLength = text.length;
var del = ("");
var x = 0;
xElement += 1;
setTimeout(function () {
setInterval(function () {
x += 1;
$del.html(text.substr(0, x));

  		$this.html(text.substr(x));

  		$this.prepend($del);
  	}, speed);
  }, delay * xElement);

});
callback();
});

iwillbeawebdev.other = (function() {
console.log(“yoooooooooooooooooooooooo”)
});

I’m new to callbacks and baffled by the set up.

Thanks
James

https://beautifier.io/

var iwillbeawebdev = (function() {
    var that = {};
    that.init = function() {
        iwillbeawebdev.load(function() {
            iwillbeawebdev.other();
        });
    }
    return that;
})();

iwillbeawebdev.load = (function(callback) {
    var speed = 33;
    var delay = 1000;
    var xElement = 0;
    $(".animate-strikethrough").each(function() {
        var this = (this);
        var text = $this.text();
        var textLength = text.length;
        var del = ("");
        var x = 0;
        xElement += 1;
        setTimeout(function() {
            setInterval(function() {
                x += 1;
                $del.html(text.substr(0, x));
                $this.html(text.substr(x));
                $this.prepend($del);
            }, speed);
        }, delay * xElement);
    });
    callback();
});

iwillbeawebdev.other = (function() {
    console.log(“yoooooooooooooooooooooooo”)
});