小编Ato*_*nal的帖子

如何在while(true)循环中每隔n和m秒调用两个异步函数?

我有以下循环:

while (true) {
  await f();
  await g();
}
Run Code Online (Sandbox Code Playgroud)

其中fg定义如下:

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?有没有更好的方法来做我想做的事?

javascript async-await es6-promise

6
推荐指数
1
解决办法
42
查看次数

从Python AST获取与给定名称的特定变量对应的所有节点

考虑下面的代码:

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内部fxs 的其余部分不同。是否可以获取仅具有脚本和脚本的AST而不执行脚本的AST节点?

python abstract-syntax-tree

3
推荐指数
1
解决办法
909
查看次数