Potrzebny zwrot wartości z callback

Potrzebny zwrot wartości z callback
TT
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 11
0

Mam taki problem, bo muszę zwrócić dane z callback i nie mam pojęcia jak. Nie potrafię tego obejść bo to callback w callback...

Kopiuj
chrome.webRequest.onBeforeRequest.addListener
(
	function(details)
	{
		//coś tam, coś tam
		chrome.tabs.get(details.tabId, function(tab)
		{
			var status = false;
			//jakieś tam obliczenia na podstawie danych z callback które dają zmienną status i może być ona true lub false
		});
	//I tutaj muszę mieć zwrócony ten status, żeby wykonać linię poniżej
	return {cancel: status};
	},
	{
		urls: ["<all_urls>"]
	},
    ["blocking"]
);

Mam nadzieję, że znacie jakiś sposób.

NE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 77
0

Zmienna status powinna być zadeklarowana poziom wyżej a w callbacku powinno być jej przypisanie.

TT
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 11
0

To tak nie działa. Callback z chrome.tabs.get przyjmnie wartość zadeklarowaną wcześniej, ale zmieni tą wartość tylko lokalnie także po wykonaniu całego callback z chrome.tabs.get wartość pozostanie bez zmian.

TT
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 11
0

Zauważyłem, że chrome.tabs.get wykonuje się asynchronicznie i wylicza status za późno. Jak to można zsynchronizować?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.