js 怎么 单线程 执行代码

跑跑鱼 2010-11-18 11:27:50
在extjs里边有个for  循环,循环里边有store.load(),store还没有load完,for循环就执行下次的了,请问怎么解决?
...全文
272 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
跑跑鱼 2010-11-23
  • 打赏
  • 举报
回复
楼上的是递归吧
  • 打赏
  • 举报
回复
function 回调函数A(){
设置退出条件(参照你原来FOR的条件),满足即return;,不再调用
store.load(,,回调函数A);
}
回调函数A(); //开始执行,在满足结束条件之前就会重复调用,完成你要的结果
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 jsjxieyang 的回复:]
设置while循环,浏览器就会提示运行缓慢。换个for。

而且这个多线程,你设置循环,他会不会再起一个线程啊?
[/Quote]
循环的意思你没搞错。循环有很多种,不只是表面while,for那样。
把你现在的for或while的都注释掉

function 回调函数A(){
设置退出条件(参照你原来FOR的条件),满足即return;,不再调用
store.load(,,回调函数A);
}
跑跑鱼 2010-11-21
  • 打赏
  • 举报
回复
设置while循环,浏览器就会提示运行缓慢。换个for。

而且这个多线程,你设置循环,他会不会再起一个线程啊?
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 jsjxieyang 的回复:]
load确实有回调函数
[/Quote]
必须的了。设置回调函数,在回调函数里再调用store.load()就行了,注意设置条件防止死循环。
跑跑鱼 2010-11-20
  • 打赏
  • 举报
回复
load确实有回调函数
Mr-Jee 2010-11-20
  • 打赏
  • 举报
回复
其实load是内嵌了异步加载。
hch126163 2010-11-19
  • 打赏
  • 举报
回复
for 是同步的。你的 store.load 方法是异步的
那你不用for 循环,你可以在
store.load() 完成后再加载下一个撒!

luojihaidao 2010-11-18
  • 打赏
  • 举报
回复
没有用过extjs这东西。听你说的, store.load()应该有用到setInterval()或setTimeout()方法。


这两个方法应该都不能实现你说的同步。


不过你可以在用信息量来控制setInterval()或setTimeout(),当然你可以实现个简单的。

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧