Как вызвать функцию после асинхронной функции JavaScript с обещаниями? - PullRequest
1 голос
/ 25 сентября 2019

Итак, у меня есть функция, в которой я создаю цепочку обещаний для получения различных данных, которые будут выглядеть следующим образом.

that = this;    
that.load = function load() {
getEmployeeDetails(id)
    .then(function() {
        return validateEmployeeDetails([name, age, address]);
    })
    .spread(function (nameData, ageData, addressData) {
    that.name = "Name: " + nameData;
    that.age = "Age: " + ageData;
    that.address = "Address: " + addressData;
    })
    .then(function() {
        return someService.getDesignation(id);
    })
    .then(function(desig) {
        that.designation = desig;
    })
    .catch(function(err) {
        throw error;
    })
    .done();
};

У меня есть другая функция, где я должен вызвать функцию загрузки

that.openEmployee = function openEmployee() {
    getEmployeeSession()
    .then(function getSessionData(res) {
        if(res.status === 200) {
            doSomething();
        }
    })
    .catch(function() {
        throw error;
    })
    .done();
};

Теперь мне нужно вызвать функцию загрузки перед функцией doSomething.Я пытался использовать обещания, а также использовать события.Но проблема в том, что он выполняет распределенную часть нагрузки, а затем вызывает doSomething, а затем продолжает выполнять блоки then в функции load.Принимая во внимание, что я хочу вызывать метод doSomething после последнего, затем в функции загрузки выполняется.Заранее спасибо.

...