如何让 angular 等待 DWR 调用的响应?

How to make angular wait for response of DWR Call?

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

我尝试了 promise 概念,但我不明白如何将它准确地应用于 DWR。

编辑:

整个场景就是我在

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

      }

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

您可以将回调函数的引用传递给 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');
        });
    });