J'apprends à coder les extensions Chrome et je suis curieux de transmettre des paramètres dans des fonctions asynchrones et un problème de simultanéité. Permettez-moi de vous donner un exemple:Fonctions et fonctions de rappel des extensions Chrome
function updateActiveTab(param1)
{
chrome.tabs.query({active: true, currentWindow: true}, function(tabs)
{
onUpdatingTab(tabs[0].id, param1);
});
}
function onUpdatingTab(tabID, param1)
{
console.log("Tag ID=" + tabID + ", param=" + param1);
}
Alors, laisse supposer que la première fois que ma méthode updateActiveTab()
est appelée avec param1=1
et l'appel à chrome.tabs.query()
prend un certain temps. Pendant ce temps, tandis que chrome.tabs.query()
est toujours en cours de traitement, ma méthode updateActiveTab()
est appelée à nouveau avec param1=2
. Que se passerait-il lorsque le premier appel à chrome.tabs.query()
renverrait et commencerait à traiter sa fonction de rappel? Est-ce que param1
sera 1
ou 2
?
Je cherche évidemment à passer mon param1
comme 1, et 2, et ainsi de suite, aux appels respectifs de sa fonction.
Qu'est-ce qui vous fait penser que la variable pourrait changer? –
@RobW: Idk. Je ne fais que demander. Je viens du développement C++ où la concurrence peut être un problème. – c00000fd
JavaScript est monothread. –