How to ensure, in JavaScript (jquery) that some actions are performed one after other, in an order.
Say, I need to load schools collection BEFORE loading teachers, in order to assing the myTeacher.SchoolName = schools[myTeacher.SchoolId].name;
The pseudo code bellow:
const studentsUrl='api/students', teachersUrl='api/teachers', schoolsUrl='api/schools';
let students = null, teachers = null, schools = null;
$(document).ready(function () {
    getSchools(); 
    getTeachers(); 
    getStudents(); 
});
function getSchools() {
    $.get(schoolsUrl, function (data) {
            window.schools = data;
        });
}
function getTeachers() {
    $.get(teachersUrl, function (data) {
            window.teachers = data;
            // >>> SHOULD BE SURE, SCHOOLS already loaded!!!
            $.each(teachers, function (key, item) {
                item.school = schools[item.schoolId].name;
            });
        });
}
function getStudents() {
    $.get(studentsUrl, function (data) {
            window.students = data;
            // >>> SHOULD BE SURE, TEACEHRS already loaded!!!
            $.each(students, function (key, item) {
                item.teacher = teachers[item.teacherId].name;
            });
        });
}
PS.
Is there another way to assure order but the encapsulation of one function at the end of another?