我有以下循环:
while (true) {
await f();
await g();
}
Run Code Online (Sandbox Code Playgroud)
其中f和g定义如下:
async function f() {
await Promise.all([SOME_REQUEST_F, sleep(1000)])
}
async function g() {
await Promise.all([SOME_REQUEST_G, sleep(5000)])
}
Run Code Online (Sandbox Code Playgroud)
也sleep定义如下:
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
Run Code Online (Sandbox Code Playgroud)
我的意图是SOME_REQUEST_F每秒钟等待一次,SOME_REQUEST_G每五秒钟等待一次,因此将它们包装在f和中g。
但是,当前g阻止f了循环内的重新等待。
如何定义sleep(如果用于)g阻止它的重新执行g,而不阻止它的重新执行f?有没有更好的方法来做我想做的事?
考虑下面的代码:
1 | x = 20
2 |
3 | def f():
4 | x = 0
5 | for x in range(10):
6 | x += 10
7 | return x
8 | f()
9 |
10| for x in range(10):
11| pass
12| x += 1
13| print(x)
Run Code Online (Sandbox Code Playgroud)
的值x的代码的执行之后以上10。现在,我怎么能得到所有一流的节点Name,其ids为x并指x这是一个在线路1,10,12和13被使用?
换句话说,的x内部f与xs 的其余部分不同。是否可以获取仅具有脚本和脚本的AST而不执行脚本的AST节点?