如何调用包含链式承诺的函数

How to call a function containing chained promises

我正在使用 promises 和 Q js 库链接多个异步函数调用。我当前的代码如下所示:

    function user() {
      getID()
        .then(getName);
    }

    function getID() {
      var deferred = Q.defer();
      asyncCall(arg, function(data) {
        deferred.resolve(data);
      });
      return deffered.promise;
    }

    function getName(ID) {
      var deferred = Q.defer();
      asyncCall2(arg, function(data) {
        deferred.resolve(data);
      });
      return deffered.promise;
    }

我正在尝试从不同的位置调用 user() 并将其作为 return getName 的结果,但我不确定如何执行此操作。

只是 return 值(它本身就是一个承诺):

function user() {
    return getID().then(getName);
}

以后您可以将其用作其余代码:

user().then(function(result) {});