/**
* @param {(callback:any)=>any} f
*/
function unselfAsyncfunction(f) {
let canInvoke = true;
return (callback) => {
if (canInvoke) {
canInvoke = false;
f(function(arg) {
if (typeof callback ==='function') {
callback(arg);
}
canInvoke = true;
});
}
};
}

)