JSFiddle - React, Tailwind, and code Playground

JavaScript

var object = {};

object.foo = function(f, callback){ // foo async
	setTimeout(callback.bind(this, {"field": ++f}), 10);
};

object.foo = function(f, callback){ // foo sync
	callback({"field": ++f});
};

var field = 0; // init value

function callback(result){
	field = result.field;
	if (field < 10){
		object.foo(field, callback);
	};
};
object.foo(field, callback);