如何使角度等待DWR呼叫的响应?

时间:2017-09-06 06:48:59

标签: angularjs promise dwr

function with DWR Call  
self.getUsers = function()
        {
            console.log("Get User called");
             userProjectDWRManager.getAllUsers(function(list){
            console.log(list);
           return list;
        });
      }


  var list = self.getUsers();
console.log(list) //undefined

我尝试了承诺概念,但我并不完全明白如何将它与DWR完全一致。

编辑:

整个场景是我在

 $transitions.onStart({
      }, function(trans) {
// get list here from DWR call
    if(list.length==0)
                {
                    event.preventDefaults();
                    $state.go('register',{});
                }

      }

在这个函数中,我想获取列表并等待列表返回到下一个状态之前。但它总是进入下一个州。

1 个答案:

答案 0 :(得分:1)

你可以将对回调函数的引用传递给promise函数,以便在promise解决后执行。

self.getUsers = function(callback)
        {
            console.log("Get User called");
             userProjectDWRManager.getAllUsers(function(list){
             callback(list);//executes the callback function
        });
      }


self.getUsers(showList); //pass reference to callbak function

function showList(list){
  console.log(list);
}

了解您的更新问题

        $transitions.onStart({
    }, function(trans) {
        // get list here from DWR call
        userProjectDWRManager.getAllUsers(function(list){
            if(list.length==0)
            {
                event.preventDefaults();
                $state.go('register',{});
            }


            else
                console.log('list is Not empty');
        });
    });