JavaScript回调函数初学

异步难点与突破

由于之前都是使用同步编程,而JS是异步编程,我想等着某一个函数结束之后再执行另一个函数,结果通通失败。
最近开始使用Hamibot,它其中有大量阻塞函数API,反而简单,让我可以学会了使用回调函数callback,算是意外之喜吧。

异步编程方法

异步编程本身并不是问题,合理使用异步编程,可以提升运行效率(至少对我这样的小白,是的),如果需要用到同步函数,我提供一下思路:

回调函数

回调函数的本意是运行程序结束之后,再执行另一个函数。
但在自己编辑的函数中,它实现的效果,应该理解为,再执行到某一个部分是,执行某一个函数。
例如:

main(function(){
  console.log("zhiwk!");
});

function main(callback){
  setTimeout(function(){
    console.log("hello world!");
  },1000);
  callback();
}

根据异步编程,就会先执行回调函数,输出“zhiwk!”,再输出“hello world!”。

而我们想反过来,就应该这么写:

main(function(){
  console.log("zhiwk!");
});

function main(callback){
  setTimeout(function(){
    callback();
  },1000);
  console.log("hello world!");
}

根据异步编程,就会先执行回调函数,输出“hello world!”,再输出“zhiwk!”。

因此,我再次强调,回调函数,不是意味着函数结束时,运行回调函数,而是,代码执行到某一个阶段,执行回调函数。

总结

如果一定需要执行同步编程,且利用自己编写的函数。
可以在一个确定代码执行结束之后的位置,应用回调函数callback()。

上一篇:Python操作MySQL数据库的三种方法


下一篇:朝花夕拾 Mysql笔记2