不要嵌套呼叫.您还可以避免一些内存问题,其中javascript为每个匿名函数维护所有局部变量的副本.通过分别进行两次调用,您也可以一次执行两次调用,而不是按顺序执行.
如果我了解你的目的,这是一个更好的方法.再加上轮询gotA和gotB,你甚至可以为用户做一个漂亮的小"等待A,等待B"通知.
编辑:添加了上一个答案的循环修复.
var gotA, gotB; var followingA, followingB; function getCommonFollowers(user1, user2) { gotA = false; gotB = false; jQuery.getJSON('http://twitter.com/followers/ids.json?screen_name=/…'+ user1 + '&callback=?', gotFollowersOfA ); jQuery.getJSON('http://twitter.com/followers/ids.json?screen_name=/…'+ user2 + '&callback=?', gotFollowerOfB ); } function gotFollowersOfA(data) { followingA = data; gotA = true; if (gotB) { compareFollowersAB(); } } function gotFollowersOfB(data) { followingB = data; gotB = true; if (gotA) { compareFollowersAB(); } } function compareFollowersAB() { f2=followingA; f1=followingB; for(var i=0; i < f1.length; i++) { for(var j=0; j < f2.length; j++) { if (f1[i] == f2[j]) { //console.log("Adding f1[i]"); common.push(f1[i]); } } } $('#content').append(''+common.length+''); }