se cambio il codice nella seconda opzione whethaer Sarà problematico e se sì perché ???
Non consiglio di apportare questo cambiamento, perché può essere problematico, in generale. La documentazione per require.nextTick
(che appare subito prima della definizione della funzione) dice:
Esegui qualcosa dopo il tick corrente del loop eventi.
La chiamata fn
viola in modo sincrono la specifica che l'esecuzione dovrebbe avvenire "dopo il tick corrente". (Vedere la fine della mia risposta per una possibile obiezione qui.)
Se ti chiedi perché potrebbe essere un problema, considera che RequireJS ascolta gli eventi DOM. Una cosa che ha una funzione come require.nextTick
è dare una possibilità ai gestori di eventi di eseguire. Se si imposta require.nextTick
per eseguire la sua funzione in modo sincrono, non si dà la possibilità ai gestori di eventi di eseguire. In alcuni casi ciò potrebbe impedire a RequireJS di funzionare correttamente.
A questo punto, si potrebbe obiettare la definizione di nextTick
è tale che è bene per averlo chiamare fn
modo sincrono, perché se setTimeout
non è definito, poi lo fa chiamare fn
sincrono:
req.nextTick = typeof setTimeout !== 'undefined' ? function (fn) {
setTimeout(fn, 4);
} : function (fn) { fn(); };
Penso che questo sia inteso per casi insoliti, non la situazione run-of-the-mill in cui i moduli vengono caricati tramite richieste HTTP in modo asincrono. In alcuni casi, come forse i dispositivi incorporati che non dispongono dell'ambiente JS fornito dai browser o dai Nodi.js, l'unico modo per eseguire un software che utilizza RequireJS è caricare un bundle ottimizzato che sia passato attraverso r.js
e includere require.js
nel pacchetto. In un caso come questo, averechiamata fn
in modo sincrono sarebbe discutibile perché, nel momento in cui RequireJS viene eseguito, tutti i moduli sono già stati caricati.
cosa vuoi esattamente? –
@BhojendraNepal - Voglio verificare se la funzione verrà richiamata al prossimo segno di spunta dopo la modifica ... –
la funzione definita definitivamente sovrascriverà quella precedente in modo che la precedente non venga eseguita. –