Nach dem Lesen von Callback-Funktionen in JavaScript, habe ich einige Probleme bei der Umsetzung von ihnen. Hier ist mein Code-Schnipsel, die ich in meinem Hintergrund Seite nenne:Wie kann ich eine Gruppe von Anweisungen innerhalb einer Funktion synchron in Javascript aufrufen?
var f=0;
function sendDataToServer(message,sender,callback) {
chrome.tabs.captureVisibleTab(null,{},function(dataUri){
message['screenshot']=dataUri;
f=1;
console.log("here !"+message['screenshot']); // here screenshot works fine
});
message['allLogs']=dataStore[sender.tab.id];
callback(message);
}
ich einen Screenshot von der Seite nehmen, um es zu dem Objekt hinzufügen. Ich füge dann dem Objekt eine weitere Eigenschaft hinzu und rufe dann die Callback-Funktion an.
Dies ist meine Callback-Funktion:
sendDataToServer(message,sender,function (message) {
console.log(f);
for(var i in message){
if(message.hasOwnProperty(i))
console.log(i+' '+message[i]);
}
});
}
So nach der Syntax und Regeln von JavaScript, um den Wert von f in dem Rückruf sollte 1 sein, aber es ist null und es gibt keine Eigenschaft als Screenshot im Nachrichtenobjekt.
Ich möchte Screenshot vor Aufruf der Callback-Funktion machen, damit ich im Callback Screenshot haben kann.
Was mache ich falsch und wie kann dies behoben werden?
Es ist besser, Ihre Antwort hier sind, (über eine Geige kann ein schöner Bonus). Das einzige, was ich wirklich von Ihrer Antwort bekommen kann, ist "Verschlusssachen benutzen". – Teepeemm