我有两个javascript函数,fn1将关闭弹出窗口,fn2将刷新父页面。并在弹出窗口的按钮单击中调用回调函数。
remDr$findElement(using = "link text", "PDF")
问题是在关闭弹出窗口之前,页面正在刷新(即在fn1结束之前执行代码fn2正在执行)。
如何在fn2开始执行之前等待fn1完成执行代码。
答案 0 :(得分:0)
尝试在callbacks.add(fn2)
中添加fn1
,在callbacks.fire(fn2)
调用后调用.close()
var w = window.open("", "w");
var callbacks = $.Callbacks();
function fn2() {
alert("complete")
}
function fn1() {
callbacks.add(fn2);
w.close();
callbacks.fire()
}
function callback() {
callbacks.add(fn1);
callbacks.fire();
}
callback()
另请参见$.queue()
,其中可以传递函数数组,可以使用当前函数中的next()
调用队列列表中的下一个函数。如果未调用next()
,则不会调用下一个函数
var w = window.open("", "w");
var obj = {};
$.queue(obj, "list", [fn1, fn2])
function fn2() {
alert("complete") //Refreshin the page logic
}
function fn1(next) {
w.close();
next()
}
function callback() {
$.dequeue(obj, "list")
}
callback()