需求:定时请求新浪天气API,获取全国城市今天(0),明天(1),后天(2)3天的天气情况,插入数据库中。
API接口:http://php.weather.sina.com.cn/xml.php?city=城市&password=DJOYnieT8234jlsK&day=需要的日期(0或1或2)
遇到的问题:循环中有异步请求,本该的逻辑是:每异步请求一次就往数据库添加一次请求来的数据,但现在的执行顺序不对了,变成了所有循环都结束了才会请求API,请求的URL中num的值始终是最后一次循环的值.......这样是不对的!
求高手指点该如何实现循环一次就请求一次并添加到数据库中!
你这个是闭包引起的问题。
修改下代码:
(function(url){ LogicalDispose.getNewsContent(url,function(dataXml){ Exec... }); })(url);
经你指点,修改代码后,已经OK了!谢谢,你是好人!
@凌晨三点半夜色阑珊: 这难道是传说中的“好人卡”?
@凌晨三点半夜色阑珊: 我Q:one zero two eight double three double two seven three~
@幻天芒: 我表示我请求了很久,但你不给反应呢。。。。。。。
@凌晨三点半夜色阑珊: 你能明白上班时间是没法上QQ的么~
@幻天芒: 不能明白......你们这个政策不人性啊~
@凌晨三点半夜色阑珊: 要是人性就好了~哈哈~哎~
@幻天芒: 又出现了新的问题,请查看http://bbs.csdn.net/topics/390845403?page=1#post-397877056
@凌晨三点半夜色阑珊: 在回调中,增加全局计数器,并同时累加结果,当计数器的值=循环的次数的时候,就发起数据库查询。
@幻天芒: 有什么方法可以快速联系到你的?方便发图片的。。。。。。。。
@凌晨三点半夜色阑珊: 博客园...,我不定时看一下~
@幻天芒: 世界上最遥远的距离莫过于:我能用QQ,而你不能。。。。。
@凌晨三点半夜色阑珊: 用QQ了不起~~~嫉妒ing!马上换工作了,不知道下一家能不能用,哈哈~
@幻天芒: 在苏州吗?我们公司在招人哎~
@凌晨三点半夜色阑珊: 在成都哇,哈哈~
@幻天芒: 你赶紧下班上QQ啊,等着你援助呢.............