【 在 lailai9 (赖赖) 的大作中提到: 】
: 看明白了。。
: var data=fetchJSON(start,$("#autofetch").val());
: var attr=data['db:attribute'];
: 这个地方。。fetchJSON根本没有返回任何数据给data啊……当然是undefined了
: function fetchJSON(start,keyword){
: $.getJSON("http://api.douban.com/movie/subjects?alt=xd&callback=?&start-index="+start+"&max-results=1&q="+$("#autofetch").val(),function(data){
: var id=data.entry[0].id['$t'];
: $.getJSON(id+"?alt=xd&callback=?", function(data){
: console.log(data);
: return data;
: 这个return,只是return了一些数据给目前所在的这个小function,但实际上根本没人在意这个function的return值。。
明白了……但是还是不知道怎么返回这个值给var data=。=
: })
: })
: // where is return?
: }
: 基本上,应该是把
: var attr=data['db:attribute'];
: 及以后的代码,直接放在最里头的那个function里头。。
: 再来清理一下思路,按照时间顺序,发生了下面的事儿:
: 1. var data=fetchJSON(start,$("#autofetch").val());
: 发出了一些异步请求,然后没事儿了。
: 2. var attr=data['db:attribute'];
: 因为上面是异步请求,所以立刻就执行到下面这句了,然后发生了undefined的问题
: 过了不知道多久之后。。
: 3. fetchJSON里头的第一个异步请求完成,callback函数被执行了
: 4. 这个callback 函数里头又发出了新的异步请求
: 又过了不知道多久。。
: 5. 另外一个callback函数被执行了,return了一堆数据给不知道谁,没人理会那些数据了。。
--
FROM 123.127.134.*