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游戏。