Doe dingen na functie
In jQuery heb ik een functie geschreven en ik wil als deze voltooid is dat erna nog iets gebeurd.
Vervolgens heb ik verderop in het script dit geprbeerd
Eigenlijk het zelfde als je de fadeIn en fadeOut functie zou gebruiken en als deze klaar zijn verder gaan.
Het bovenstaande doet niet wat het zou moeten doen en voert na de functie test niets meer uit.
Wat dien ik te veranderen om dit resultaat te krijgen?
Gewijzigd op 06/05/2020 22:08:25 door Bryan De Baar
Maar wat je wilt is een "callback" functie meegeven:
Nu geef je een callback mee in de functie. Maar kun je dan ook doen bij het aanroepen van de functie?
Dan ben je natuurlijk helemaal vrij om het te gebruiken waar nodig is.
Dit kun je ook doen bij de fadeIn en fadeOut, maar moet toch ook bij een eigen functie kunnen?
Of het complete verhaal:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
function test(para1, para2, callback){
alert('hier wat de functie moet doen');
if(callback) callback.call();
}
test('para1', 'para2', function(){
alert('doe dit na de functie test');
});
alert('hier wat de functie moet doen');
if(callback) callback.call();
}
test('para1', 'para2', function(){
alert('doe dit na de functie test');
});
Hiermee krijg je dus eerst een alert met "hier wat de functie moet doen", en vervolgens eentje met "doe dit na de functie test". Of had je graag een ander eindresultaat gehad?
Bryan De Baar op 06/05/2020 22:57:10:
maar moet toch ook bij een eigen functie kunnen?
Waarom zouden JavaScript functies standaard uitgerust zijn met callbacks? fadeIn() en fadeOut() maken onderdeel uit van een library die bovenop JavaScript is gebouwd. Dan is het haast vanzelfsprekend dat deze méér kunnen dan wat JavaScript standaard kan, anders zou zo'n lib weinig meerwaarde hebben.
Promises aan de gang willen. Zelf zie ik het voordeel niet zo (uiteindelijk werkt het ongeveer hetzelfde als met callbacks), maar blijkbaar is het idee (en de algemene consensus) dat het hiermee "eenvoudiger" wordt.
Of je moet met