dojo延迟回调函数
我想用dojo编写一个回调函数。我写了两个函数,a和bdojo延迟回调函数,dojo,callback,settimeout,deferred,resolve,Dojo,Callback,Settimeout,Deferred,Resolve,我想用dojo编写一个回调函数。我写了两个函数,a和b function a() { for(var i = 0; i < 3000; i++) { .... } } 我希望b可以等待a,就像a一样。然后(b),即a完成后,b开始运行。如果我写了一个();b(); 结果不是我想要的,因为b比a快。通常我使用setTimeout,但我认为它不好。 例如,a()可能需要100秒,但setTimeout我设置了50秒,这不正常 我
function a() {
for(var i = 0; i < 3000; i++) {
....
}
}
我希望b可以等待a,就像a一样。然后(b),即a完成后,b开始运行。如果我写了一个();b();
结果不是我想要的,因为b比a快。通常我使用setTimeout,但我认为它不好。
例如,a()可能需要100秒,但setTimeout我设置了50秒,这不正常
我如何编写使用延迟,可以像a()和b()那样重写我的函数,也就是说,一个函数等待另一个函数
谢谢 它应该与此类似:
require(["dojo/Deferred", "dojo/dom", "dojo/on", "dojo/domReady!"],
function(Deferred, dom, on){
function a(msg){
var deferred = new Deferred();
setTimeout(function(){
deferred.resolve(msg);
}, 1000);
return deferred.promise;
}
function b() {
console.log("b");
}
on(dom.byId("startButton"), "click", function(){
var a= a("message");
a.then(function(results){
console.log("Finished with result:"+results);
b();
});
});
});
require(["dojo/Deferred", "dojo/dom", "dojo/on", "dojo/domReady!"],
function(Deferred, dom, on){
function a(msg){
var deferred = new Deferred();
setTimeout(function(){
deferred.resolve(msg);
}, 1000);
return deferred.promise;
}
function b() {
console.log("b");
}
on(dom.byId("startButton"), "click", function(){
var a= a("message");
a.then(function(results){
console.log("Finished with result:"+results);
b();
});
});
});