web-dev-qa-db-fra.com

Javascript crée un nouveau "fil"

Il s'agit d'un "fil" selon javascript, mais le code ne semble pas correspondre au modèle fileté conventionnel.

Est-il possible de rendre ce code plus clair, en ce qui concerne la notion de thread?

function test() {
    alert("Test");
}

// this creates a new "thread," but doesn't make much sense to the untrained eye
setTimeout(test, 0); 

Y a-t-il une autre façon de se dériver?

27
skeggse

En gros, vous retirez simplement l'appel à test du flux normal et le moteur exécutera la fonction chaque fois qu'elle conviendra, dès que possible. Cela signifie que vous exécutez test de manière asynchrone .

Pour rendre le code plus clair, vous pouvez créer une fonction avec un nom significatif qui fait la même chose:

function executeAsync(func) {
    setTimeout(func, 0);
}

executeAsync(function() {
    alert("Test");
});

Si vous voulez avoir de vrais threads, jetez un œil à web workers .

32
Felix Kling