Дзен-трансгуманист,
суть понял , сделал так
if (!imgCache) {
var img = new Image();
imgCache = loaded[type.bg] = {
obj: img,
sub:[]
};
imgCache.sub.push(function () {
ctx.drawImage(imgCache.obj, x, y, width, height);
});
img.onload = function () {
for (var i = 0; i < imgCache.sub.length; i++) imgCache.sub[i]();
};
img.src = type.bg;
img = null;
}
else {
imgCache.sub.push(function () {
ctx.drawImage(imgCache.obj, x, y, width, height);
});
}
спасибо за подсказку.