如何进行javascript回调和停止异步-简单示例
我正试图将注意力集中在javascript回调上,这让我感到很困难。 我有一段简单的代码:如何让filter函数在使用回调执行之前等待water函数完成如何进行javascript回调和停止异步-简单示例,javascript,callback,Javascript,Callback,我正试图将注意力集中在javascript回调上,这让我感到很困难。 我有一段简单的代码:如何让filter函数在使用回调执行之前等待water函数完成 function plant() { console.log("Plant maize"); } function water() { setTimeout(function() { console.log("Water plant") },3000); } function fertilize
function plant() {
console.log("Plant maize");
}
function water() {
setTimeout(function() {
console.log("Water plant")
},3000);
}
function fertilizer() {
console.log("Add fertilizer");
}
plant();
water();
fertilizer();
通过从回调调用它
功能工厂(){
控制台日志(“种植玉米”);
}
功能水(){
setTimeout(函数(){
控制台日志(“水厂”)
肥料();//您可以向肥料添加一个回调,并将函数肥料
传递给水
方法
function plant() {
console.log("Plant maize");
}
function water(callback) {
setTimeout(function() {
console.log("Water plant")
callback();
},3000);
}
function fertilizer() {
console.log("Add fertilizer");
}
plant();
water( function () {
fertilizer();
});
您不需要回调,只需在水超时内调用肥料函数即可:
function plant() {
console.log("Plant maize");
}
function water() {
setTimeout(function() {
console.log("Water plant");
fertilizer();
},3000);
}
function fertilizer() {
console.log("Add fertilizer");
}
plant();
water();
使用优秀的函数,您可以通过显式地向所有函数添加回调来实现:
async.series([ plant, water, fertilizer ], function(error, results){
console.log("done!");
});
function plant(callback) {
console.log("Plant maize");
callback(null);
}
function water(callback) {
setTimeout(function() {
console.log("Water plant");
callback(null);
},3000);
}
function fertilizer(callback) {
console.log("Add fertilizer");
callback(null);
}
有两种基本方法可以做到这一点:
一种方法是使用回调,即将函数作为参数传递给water
函数,当超时发生时将调用该函数。回调是在特定逻辑后按需调用的函数
function plant(){console.log(“plant玉米”)}
功能水(成功时){
setTimeout(函数(){
控制台日志(“水厂”)
/*请看这里,我们在成功处理剩余逻辑后调用传递的函数*/
if(typeof onSuccess==“函数”){onSuccess()}
},3000)
}
函数fa肥(){console.log(“添加肥料”)}
植物()
/*肥料函数作为回调传递给水函数*/
水(肥料)
通过将肥料
函数作为对水
函数的回调传递给后者,后者可以在通过超时调用的匿名函数内部调用前者…宽泛的主题,您可能应该阅读承诺。