同步调用异步进程

时间:2016-03-14 12:17:18

标签: javascript angularjs synchronization

我需要在RegisterUser函数完成后执行一个函数LoginUser。

问题是两个函数都依赖于内部异步调用。

我试过这个,但LoginUser函数似乎还没有等到RegisterUser完成。

你知道我怎么解决这个问题吗?

var registerUser = new Promise(
    function(resolve, reject) {     

        doDometing ...                 

        var registerUserSuccess = function() {
            doDometing ...                             
            resolve("value 1");                                
        };

        var registerUserFailure = function(errors) {
            doDometing ...   
            resolve("value 2");
        };

        externalCall1().then(registerUserSuccess,registerUserFailure);
    }
);


var loginUser = new Promise(
    function(resolve, reject) {     

        // doSomething ...                 

        var loginUserSuccess = function() {
            doDometing ...                             
            resolve("value 3");                                
        };

        var loginUserFailure = function(errors) {
            doDometing ...   
            resolve("value 4");
        };

        externalCall2().then(loginUserSuccess,loginUserFailure);
    }
);

registerUser.then(loginUser);

1 个答案:

答案 0 :(得分:0)

您应该在" RegisterUserSuccess"中调用loginUser。功能

异步调用完成后调用RegisterUserSuccess。

var registerUserSuccess = function() {
    // doSomething... 
    loginUser(); // your function call for login user goes here                            
    resolve("value 1");                                
};
相关问题