Comment faire pour utiliser jQuery .Lors de l' .fait
Je suis en train de lancer une fonction après l'autre fonction complète.
$.when(saveCanvas(canvas)).done(setWallPaper());
Chaque fonction fonctionne très bien sur son propre, mais lorsque j'exécute le code ci-dessus, il ne fonctionne que pour la première fonction.
Que dois-je changer?
Difficile de répondre sans voir les fonctions réelles de mise en œuvre, mais je devine
$.when(saveCanvas(canvas)).done(setWallPaper);
OriginalL'auteur Philip Kirkbride | 2013-03-24
Vous devez vous connecter pour publier un commentaire.
Selon un commentaire sur DONC, la question d'une autre,
$.when
s'attend à ce différé d'objets comme arguments. Si vous n'avez pas passer n'importe quoi, les rappels seront invoquées immédiatement.Ne
setWallPaper()
semblent ne pas fonctionner car il est effectivement en cours d'exécution avant desaveCancas(canvas)
?saveCanvas()
n'est pas réellement un différée objet, quiwhen
s'attend à le trouver. Pour en faire un objet reporté, ajouterdfr = $.Deferred();
au début de votresaveCanvas()
fonction etreturn dfr.promise();
à la fin de celui-ci. Découvrez cette SORTE de réponse pour plus de détails.Lire la suite: http://api.jquery.com/jQuery.when/
Édité ma réponse à proposer une solution différente
Rappelez-vous que la promesse doit être résolu à un certain point, ou le fait de rappel se déclenche jamais.
Cette réponse a été très utile pour moi. Merci beaucoup!
OriginalL'auteur Luke Shaheen
un autre sauvage deviner:
OriginalL'auteur Crash Override