Comment tuer une fonction javascript?

exemple de code:

var isExecutionOver = false,
    myFunction = function() {
      //does some asynchronous stuff and sets isExecutionOver to true
      //when the asynchronous job is over.
    };

myFunction();

//Kill myFunction if it takes more than 3 seconds
setTimeout(function() {
  if(!isExecutionOver) {
    //How do I kill myFunction?
  }
}, 3*1000);

Dans l'extrait ci-dessus, je suis en train de la tuer (ou en d'autres termes, arrêter l'exécution d') myFunction si elle n'est pas capable de faire son travail de temps donné (3 secondes dans ce cas).

PS: Veuillez supposer que je n'ai pas de contrôle sur myFunction définition. Le seul endroit où je peux travailler est à l'intérieur de setTimeout.

Dépend. Ce asynchrone des choses qui se passe? Si c'est une demande XHR, vous pouvez .abort(). Pour être clair, myFunction aura quitté longtemps avant l'async truc est fait. Ce que vous souhaitez annuler est ce que l'attente d'opération asynchrone qui a été commencé par myFunction, pas myFunction lui-même.
Je ne sais pas où vous êtes allé, mais il n'y a pas assez d'informations pour répondre précisément à votre question.

OriginalL'auteur Goje87 | 2013-06-05