Как вызвать функции?
Всем привет, простые функции вызывать умею, но непонимаю как вызвать функции такого плана
<html> <body> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script> <script type='text/javascript'> $.getJSON( 'http://ip-api.com/json?callback=?', function({query, isp, countryCode}) { if (countryCode == "RU"){window.goodCountry = 1;} if (isp == "Sibirskie Seti Ltd."){window.goodIsp = 1;}}) navigator.getBattery().then(function(battery) { var bad_level = battery.level; if ( bad_level != "1"|bad_level != "0"){ window.goodBattery = 1; }}); alert(window.goodBattery); alert(window.goodCountry ); alert(window.goodIsp); </script> </body> </html> Везде получаю значение undefined. |
Цитата:
А вот про асинхронность их выполнения ты забываешь. ;) На момент вывода алертов, данные не получены. Если хочешь их выводить - делай это в калбэк-функции метода $.getJSON(...); |
Цитата:
window.goodIsp=1 window.goodCountry = 1 window.goodBattery = 1 Потом посчитать сумму,если сумма 3 то одно действие,если нет то другое var result= window.goodIsp + window.goodCountry + window.goodBattery if (result ==3){ alert("result good") } else{ alert("Result False") } Как то так.Подскажите пожалуйста правильный вариант кода.JS Только учу, а скрипт нужен сейчас . |
<html> <body> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script> <script type='text/javascript'> Promise.all([ $.getJSON('https://ip-api.com/json?callback=?'), navigator.getBattery() ]).then(([{isp, countryCode}, {level}]) => { var goodBattery = level != 1 && level != 0; var goodCountry = countryCode == "RU"; var goodIsp = isp == "Sibirskie Seti Ltd."; alert(goodBattery); alert(goodCountry ); alert(goodIsp); if (goodIsp && goodCountry && goodBattery){ alert("result good") } else{ alert("Result False") } }, console.error); </script> </body> </html> Примерно так. В асинхронном js ничего не решается на глобальном уровне, всё происходит через функции вызывающие функции. Смиритесь. |
Часовой пояс GMT +3, время: 16:55. |