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

时间:2015-10-14 19:37:55

标签: javascript node.js promise q

我使用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()并让它返回getName的结果但不知道如何执行此操作。

1 个答案:

答案 0 :(得分:3)

只返回值(这是一个承诺本身):

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

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

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