比如我要运行依次运行三个函数f1,f2,f3,需要严格按照顺序来执行
但是如果f1 里面出现ajax 或者其它需要运行比较久的东西时,f2,f3 就会先运行。
如何避免?
目前我的打算是,将f2作为f1的callback,f3做f2的callback。
这类型问题,大家是怎么解决的?
比如我要运行依次运行三个函数f1,f2,f3,需要严格按照顺序来执行
但是如果f1 里面出现ajax 或者其它需要运行比较久的东西时,f2,f3 就会先运行。
如何避免?
目前我的打算是,将f2作为f1的callback,f3做f2的callback。
这类型问题,大家是怎么解决的?
JSDeferred 是一个解决异步问题的很好的工具:
https://github.com/cho45/jsdeferred
jQuery 的 AJAX 类也是基于 Promise 模式的. 比如:
$.get(url).done(function(data) { // do something after data returned. });
13 回答13.1k 阅读
7 回答2.3k 阅读
3 回答1.4k 阅读✓ 已解决
6 回答1.5k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
3 回答1.5k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
这个问题可以用promise模式来解决。具体的用原生js的实践可以看看这篇文章 https://raw.github.com/kriskowal/q/ma...
有一些现成的类库可以直接拿来用,比如