Javascript函数根据第一个函数返回值返回value.call的另一个函数

时间:2013-09-30 05:57:49

标签: javascript callback synchronous

抱歉,这可能不是新问题,但我是JS新手,我没有得到任何具体的例子。

function find(param){            
        $.each(array,function(i,elem){              
            if(elem.id==param){
                return i;
            }
        })
        return null;
    }
//after calling this function i want to perform actions based on result
$(document).on("click","#elem",function(){
      //want to make this part synchronous
      $.when(i=find(param1)).then(function{
      if(i==null)
          {//do something
          }
      else{//do something
          }
})
}

我想根据find函数的返回值执行操作。而且只有在find函数结束后才能检查条件。

1 个答案:

答案 0 :(得分:1)

您的find函数将始终返回null。

$.each(array,function(i,elem){              
    if(elem.id==param){
        return i;   //this is each iteration callback scope not find function scope
    }
})

find函数应如下所示:

function find(param){
    var matched=null;            
    $.each(array,function(i,elem){              
        if(elem.id==param){
            matched=i;
        }
    })
    return matched;
}

希望这对你有所帮助。