2022.08.14
function polling(flag, doIt, doItParams, t) {
if(flag) {
setTimeout(function wait() {
if(flag) setTimeout(wait, t);
else doItParams == null ? doIt() : doIt(doItParams);
}, t)
}
else doItParams == null ? doIt() : doIt(doItParams);
}
let username;
$(function () {
$.ajax({
url: "/user/getUsername",
success(result) {
username = result;
//......
}
})
})
polling(username === undefined, function () {
//......
}, null, 1000);
360极速浏览器,跟chrome、edge不太一样,请求发的晚还是处理得晚?
2022.09.04
这个函数不能用,flag是恒定不变的!
所以不能封为函数用,而是每次调用都具体写一次。
2022.09.22
又“行”起来了!
function polling(flag, doIt, doItParams, t) {
if(eval(flag)) {
setTimeout(function wait() {
console.log("waiting...");
if(eval(flag)) setTimeout(wait, t);
else doItParams == null ? doIt() : doIt(doItParams);
}, t)
}
else doItParams == null ? doIt() : doIt(doItParams);
}
let username;
//Async operation
setTimeout(function () {
username = "admin";
}, 3000);
polling("username === undefined", function (data) {
document.write(data)
}, "Hello World!", 1000);
2022.11.05
eval(s)
的替代方式Function('return ${s};')()
function polling(flag, doIt, doItParams = null, t = 100) {
if(Function(`return ${flag};`)()) {
setTimeout(function wait() {
console.log("waiting...");
if(Function(`return ${flag};`)()) setTimeout(wait, t);
else doItParams == null ? doIt() : doIt(doItParams);
}, t)
}
else doItParams == null ? doIt() : doIt(doItParams);
}
let username;
//Async operation
setTimeout(function () {
username = "admin";
}, 3000);
polling("username === undefined", function (data) {
document.write(data)
}, "Hello World!", 1000);