如何解决Javscript 里面阻塞的问题

比如我要运行依次运行三个函数f1,f2,f3,需要严格按照顺序来执行

但是如果f1 里面出现ajax 或者其它需要运行比较久的东西时,f2,f3 就会先运行。

如何避免?

目前我的打算是,将f2作为f1的callback,f3做f2的callback。

这类型问题,大家是怎么解决的?

阅读 6k
6 个回答
新手上路,请多包涵

把f1/f2里的异步关掉吧。。。

解决方案就是你现在做的那样,各种callback,开始可能觉得不舒服,写习惯就好了。
ServerJS比如NodeJS里callback用得比WebJS更吓人,嘿嘿

解决javascript里的阻塞,就是通过callback的方式吧!

设置一个变量,如果前一个函数的变量比如first=good;那么表示他已经执行成功,然后就执行下一个程序。

JSDeferred 是一个解决异步问题的很好的工具:
https://github.com/cho45/jsdeferred

jQuery 的 AJAX 类也是基于 Promise 模式的. 比如:

$.get(url).done(function(data) {
	// do something after data returned.
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题