Я создаю проект MVC. Я получаю текущий город пользователя и помещаю его в верхний правый угол на веб-странице. Это первый код javascript, который выполняется. Второй код javascript работает, чтобы получить погодное состояние этого города. Но к тому времени, когда js запускается, чтобы получить погоду, название города не задается первым js.Как запустить 2 кода javascript, чтобы получить правильный результат
Итак, мне нужно убедиться, что перед запуском второго js первый js завершается. Как я могу это сделать?
вот мои коды js.
Сначала на это JQuery код
<script>
function GetUsersInfo()
{
$.get("http://ipinfo.io", function (response) {
$("#cityName").html(''+response.city);
if ($("#cityName").html === "")
{
$("#cityName").html("İstanbul");
}
}, "jsonp");
}
GetUsersInfo();
</script>
Второй код угловатые JS
<script>
var app = angular.module("ZenHaberApp", []);
app.controller("WeatherController", function ($scope, $http) {
var $city = document.getElementById("cityName").innerHTML
alert($city)
$http.get('http://localhost:62747/api/getweatherbycityname/' + $city).
success(function (data, status, headers, config) {
$scope.weathers = data.condition_temp;
}).
error(function (data, status, headers, config) {
alert(status);
});
});
</script>
Обсуждение о callback hell lol – Derek
@Derek На самом деле async предназначен для завершения обратного вызова ада –
Обещания предназначены для прекращения аддона обратного вызова. В приведенном выше примере кода есть обратные вызовы, которые, тем не менее, являются аддонами обратного вызова. Обещания не имеют обратных вызовов. – Derek