Доброго, мой дорогой javascript-гуру
Есть вот такой код у меня:
var level = parseRoomName(roomId).level;
if (!svgAction.isExisted(level)) {
svgAction.ajaxLoad(level);
loadSvg.success(function(){
svgAction.enablePanZoom(level);
//
findRoom(roomId);
})
} else {
if (lastSvgLevel == level) {
//
findRoom(roomId);
} else {
svgAction.enablePanZoom(level);
//
findRoom(roomId);
}
}
чтобы он проще читался - перепишу, убрав лишнее
if (iHaveNoCar) { // у меня нет машины
buyCar(); // ajax-запрос на покупку машины
buyingCar.success(function(){ // машина купилась успешно и теперь она у меня
// заводим машину
start(car);
// едем искать Эльдорадо
findEldorado();
})
} else {// у меня есть машина
if (carIsStarted) { // машина заведена
// чего же мы ждем? Поехали искать Эльдрадо
findEldorado();
} else { // двигатель не запущен
start(car);
// едем искать Эльдрадо
findEldorado();
}
}
Так вот, кусок кода с поиском Эльдорадо, которому
предшествуют покупка машины и заведение двигателя, вызывается не раз по ходу выполнения программы.
Было бы здорово написать функцию, в параметр которой задавался поиск эльдорадо, заправка авто, покраска авто или проверка авто на наличие дырок от пуль и еще в левой двери.
Но когда я пишу функцию
function initCar(myFunc) {
if (iHaveNoCar) {
buyCar();
buyingCar.success(function(){
start(car);
myFunc;
})
} else {
if (carIsStarted) {
myFunc;
} else {
start(car);
myFunc;
}
}
}
и когда я ее запускаю вот так:
initCar(findBulletInDoor('left'))
то сначала выполняется поиск дырок в левой двери, а только потом проверка на наличие автомобиля, его покупку, доставку и заведение двигателя.
Как выполнить findBulletInDoor('left') внутри initCar так, как это выполнилось бы в первом примере кода про машину?