你表达得有点不太清楚,按照我对你的理解,你可能是想做下面的事情:
$("#button_Reboot").click(function () {$.get("Reboot.run", function (result) {
alert(result)
})
.done(function() {
window.location.reload()
})
})
因为get是异步方法,所以我猜你想做的是等待get方法已经拿到数据以后再进行一次页面的刷新,于是,我们就可以用”done“这个方法了,这个方法做的事情就是等待get方法成功完成以后才刷新页面。
有问题再追问。
1.Generator每次next都会返回一个对象,该对象的构造形式为{ value:Object,done:Boolean },这里暂且remark为 “Ret”2.生成器函数可以通过gen.next(args)的形式给yield出来的fn传递参数。
因为它的内部实现是ajax,本来就是异步的,所以是异步编程。jQuery.when(deferreds)
参数deferreds,一个或多个延时对象或JS对象,我们初略的认为它就是一个或多个异步请求。
例如:
[javascript] view plain copy
$.when($.ajax("page1.php"), $.ajax("page2.php"))
when()函数常常和done()函数、fail()函数、then()函数联合使用:
done(Function func) - 当deferreds中的处理都完成的时候执行Function回调函数
fail(Function func) - 当deferreds中有一个处理失败的时候执行Function回调函数
then(Function func1,Function func2)- 结合了done和fail函数,当都成功执行func1,当有一个失败执行func2
Example:
[javascript] view plain copy
var whenResult = $.when($.ajax("page1.php"), $.ajax("page2.php"))
whenResult.done(function(a1,a2){
//函数内容略
//a1和a2俩参数是when函数中两个ajax请求的相关jqXHR对象
})
whenResult.fail(function(){
//函数内容略
})
whenResult.then(successFunc,failureFunc)