比这更好节点.js好多了。
在javascript中,尤其是在ajax中,回调函数通常是一个函数名,没有放置参数的位置。例如,下面的ajax代码将在成功后调用回调函数callback,但是callback有参数。如何传入参数?varcallback=function(p1){//dosomething}varajaxsetting={url:url超时:me.timeout,type:method,contenttype:“application/json”,datatype:“json”,cache:false,async:async,data:pdata,success:callback},error:function(prequest,pstatus,p解决方案是使用匿名函数:success:函数(result){回调(p1)},其中pauactual是一个已知参数,可以是function类型。
异步处理不需要阻塞以等待处理完成,但允许后续操作,直到程序完成处理并回调通知此函数
然后在js中有几种异步方式:
示例1
varasync=function(callback){//readdatasettimeout(function(){callback(“data”)},1000)//1秒后回调}//useasync(function(data){alert(data)}
示例2
varasync=function(callback){varxhr=newxmlhttprequest()xhr打开(“get”,“”,true)xhr.onreadystatechange=函数(){回调(xhr.readystatus文件)}xhr.发送()}异步(函数(数据){警报(数据)})
示例3
回调函数是指在调用者完成处理后自动回调给调用者的函数。在类c语言中,它通常通过函数指针/引用传递。jquery还提供了类似的回调函数机制。但是如何正确地传递回调函数仍然值得一提。在john(jquery创始人)编写的指南中有详细的描述。
1.回拨$。获取(“myhtmlpage.html,mycallback),其中mycallback是函数名。函数是javascript的基础。它可以作为引用变量传递。
2.带参数的回调非常自然。根据以前的经验,我们认为带参数的回调如下:$。获取(“myhtmlpage.html,mycallback(param1,param2)),但这将无法正常工作。mycallback(param1,param2)在调用此语句时执行,而不是稍后。