我有一个用于循环内部函数的异步代码,它有这样的延迟
const timeout = ms => new Promise(res => setTimeout(res, ms))
async function sayHai() {
for (var i = 0; i < 100; i++) {
await timeout(1000);
console.log("Hai");
if ( (i%5) == 4 ) await timeout(30000);
}
}
sayHai();
我要生成的代码如下:
hai delay 1 sec
hai delay 1 sec
hai delay 1 sec
hai delay 1 sec
hai delay 1 sec
delay 30 sec
hai delay 1 sec
hai delay 1 sec
hai delay 1 sec
hai delay 1 sec
hai delay 1 sec
我希望代码是同步的,因为我想在控制台上使用它,所以我需要代码按顺序执行
答案 0 :(得分:1)
您要尝试的是使事情变得复杂的方法。可以通过简单的队列进行简化。有一个可以自我调用并在下一次迭代中使用超时的函数。
def is_number(s):
try:
float(s)
return True
except ValueError:
return False
def StringLength():
text = input('Enter:')
if is_number(text):
print ("python doesn't show length of integers")
else :
return(len(text))
#StringLength() #Remove the '#' at the start of the line to test the function