Javascript 如何链接一系列返回承诺且需要不同参数的函数?

Javascript 如何链接一系列返回承诺且需要不同参数的函数?,javascript,angularjs,angular-promise,Javascript,Angularjs,Angular Promise,我有两个异步函数,它们使用以某种方式获取的参数: var a = getUserinput(); var b = getUserinput(); var c = getUserinput(); var d = getUserinput(); var func1 = function(valA, valB){ var deferred = $q.deferred; //http call with valA, valb... // when complete, r

我有两个异步函数,它们使用以某种方式获取的参数:

var a = getUserinput();
var b = getUserinput();
var c = getUserinput();
var d = getUserinput();


var func1 = function(valA, valB){
     var deferred = $q.deferred;
     //http call with valA, valb...
     // when complete, resolve deferred
     return deferred.promise;
}

var func2 = function(valC, valD){
     var deferred = $q.deferred;
     //http call with valC, valD...
     // when complete, resolve deferred
     return deferred.promise;
}
我要执行
func1
,然后执行
func2
。问题是,我无法找到一种方法来成功地执行此操作,同时能够为
func2
提供参数

例如,如果我

func1(a, b).then(func2(c, d));
func2
func1
完成之前执行

如何仅在
func1
完成后执行
func2


func

提供匿名函数并将
func2
调用放在其中:

func1(a, b).then(function() {
    func2(c, d);
});

如果有帮助的话,我最近用C编写了第一个针对UNIX的rogue版本,并将其重写为javascript,以便在浏览器中工作。我使用了一种称为continuation的技术来等待用户输入密钥,因为在javascript中没有中断

所以我会有这样一段代码:

void function f() {

  // ... first part

  ch = getchar();

  // ... second part

}
这将在未来发生变化

function f() {

  // ... first part

  var ch = getchar(f_cont1);

  return;
  // the execution stops here 

  function f_cont1 () {

    // ... second part
  }
}

然后将继续存储起来,以便在按键事件中重用。有了闭包,一切都将在停止的地方重新启动。

第一个版本的rogue是用C为UNIX编写的
这意味着什么?rogue是一款类似Hangbang的文本RPG游戏。