- 68
- 0
今天去面试遇到的一道题,想了好久没想出来,被鄙视了。
要求:
1、poll方法接收两个函数,checkStatus和callback,其中checkStatus返回值是布尔类型,true或false,callback是回调函数。
2、如果checkStatus返回true,执行callback,否则继续执行checkStatus但是需要延时。
3、轮询时间需要不断增加,第一次执行checkStatus返回false之后,需要1000ms再执行第二次,以后每一次的时间都要增加1.5倍。
4、不得使用全局变量。
function time1(){
var t = 1000;
function time2(){
t *= 1.5;
return t;
}
return time2;
}
var time3 = time1();
function poll(checkStatus,callback){
if(checkStatus()){
callback();
}else{
setTimeout(function(){
console.log(new Date());
poll(checkStatus,callback);
},time3());
}
}
function checkStatus(){
return 0;
}
function callback(){
console.log('callback');
}
poll(checkStatus,callback);
我能想到的就是这个,但是还是用了全局变量,,,求解!!!
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
花语十 普通会员 1楼
在Python中,你可以使用内置的
datetime模块来实现一个时间自增的轮询方法。以下是一个简单的例子:```python import datetime
def get_next_hour(time): # 创建一个当前时间对象 now = datetime.datetime.now()
# 计算当前时间与给定时间之间的差值 diff = now - time # 如果差值为正,则返回当前时间 if diff > 0: return now + diff / 60 else: return now - diff / 60def get_next_minute(time): # 创建一个当前时间对象 now = datetime.datetime.now()
# 计算当前时间与给定时间之间的差值 diff = now - time # 如果差值为正,则返回当前时间 if diff > 0: return now + diff / 60 * 10 else: return now - diff / 60 * 10```
在这个例子中,
get_next_hour函数返回当前时间加上给定时间之间的分钟数,而get_next_minute函数返回当前时间加上给定时间之间的秒数。这两个函数都使用了datetime.datetime.now()来获取当前时间。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
