JavaScriptでコールバック関数を読み取った後、私はそれらを実装するいくつかの問題に直面しています。ここで私は私の背景ページに呼び出しています私のコードスニペットです:関数内の文のグループをjavascriptで同期して呼び出す方法はありますか?
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);
}
私がオブジェクトに追加し、ページのスクリーンショットを取っています。次に、オブジェクトに別のプロパティを追加して、コールバック関数を呼び出しています。
これは私のコールバック関数です:だからはJavaScriptの構文と規則に従って、コールバックでFの値は1でなければなりません
sendDataToServer(message,sender,function (message) {
console.log(f);
for(var i in message){
if(message.hasOwnProperty(i))
console.log(i+' '+message[i]);
}
});
}
が、それはゼロで、スクリーンショットなど全く性質がありませんメッセージオブジェクトに格納されます。
コールバック関数を呼び出す前にスクリーンショットを取りたいので、コールバックでスクリーンショットを取得できます。
私は間違っていますが、どうしたら修正できますか?
に役立つかもしれません。私が本当にあなたの答えから得ることのできる唯一のものは、 "クロージャを使う"です。 – Teepeemm