Javascript 如何正确使用承诺/延迟模式
我试图在调用第三个函数之前链接需要完成的两个函数test1和test2(首先是test1,然后是test2)。有人能帮忙吗Javascript 如何正确使用承诺/延迟模式,javascript,jquery,Javascript,Jquery,我试图在调用第三个函数之前链接需要完成的两个函数test1和test2(首先是test1,然后是test2)。有人能帮忙吗 function test1(){ setTimeout(function() { console.log("test1"); return 1 }, 10000); } function test2(){ setTimeout(function() { console.log("test2"); return 2 }, 1
function test1(){
setTimeout(function() {
console.log("test1");
return 1
}, 10000);
}
function test2(){
setTimeout(function() {
console.log("test2");
return 2
}, 10000);
}
var promise1 = test1().promise();
var promise1 = test2().promise();
when(
promise1,
promise2
).then(function(a,b) {
console.log("test1 and test2 done");
});
您的代码中没有使用任何promise框架 一种方法是像使用jQuery一样使用jQuery
函数test1(){
//创建延迟对象
var deferred=$.deferred()
setTimeout(函数(){
//taks完成后,将承诺标记为已解决
延期。决议(1);
}, 2000);
//返回承诺对象
延迟返回。承诺();
}
函数test2(){//创建一个延迟对象
var deferred=$.deferred()
setTimeout(函数(){
//taks完成后,将承诺标记为已解决
延期。决议(2);
},1000);//返回承诺对象
延迟返回。承诺();
}
var promise1=test1();
var promise2=test2();
$.when(promise1,promise2)。然后(函数(a,b){
log(“test1和test2完成”,a,b);
});代码>
我可以问另一个问题吗。假设test2()的执行依赖于test1()之前的成功完成。我如何创建某种执行链?