异步进程上的同步调用

Synchronous calls on asynchronous processes

本文关键字:同步 调用 进程 异步      更新时间:2023-09-26

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

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

我已经尝试过了,但是登录用户功能似乎没有等待注册用户完成。

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

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);

您应该在"RegisterUserSuccess"函数中调用loginUser。

RegisterUserSuccess 在异步调用完成时调用。

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