У меня есть следующая цель:Как правильно выполнить обратный вызов в определенных условиях?
Я хочу иметь две функции - Start() и End(). Первая функция запускается при запуске MyFunc(), вторая запускается в конце MyFunc(). И End() не должен запускаться, пока Start() не завершен.
Теперь я написал следующий код:
function MyFunc(OnMyFuncReady) {
Start();
// do something
OnMyFuncReady();
}
function Start() {
// start specific actions
}
function End() {
// end specific actions
}
MyFunc(function() {
End();
});
Но Start() работает асинхронно по отношению к End(). Как я могу решить проблему?
Update1: проверить порядок функций, бегущих и обнаружит, что все в порядке, но в Start() Я использую JQuery анимации функции, которые выполняются асинхронно ...
UPDATE2: Теперь у меня есть следующая проблема: Я хочу запустить End(), когда Start() (где используется jQuery animate()) и MyFunc(). И то и другое. Трудная задача для меня.
Если 'Start' является асинхронным, тогда вам нужно будет использовать механизм обратного вызова также –
Извините, это моя ошибка, я исправлю это. – AlexAstanin
Мне нужен бег в следующем порядке: MyFunc() -> Start() -> End(); – AlexAstanin