小编the*_*ura的帖子

如何在 Promise.then 中访问超出范围的变量(类似于闭包)

难倒这个,肯定有一种优雅的方式来做到这一点,但不确定是什么。

我想要类似的东西:

let x = 5;

const p = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve();
  }, 2000);
}).then(() => {
  console.log(x);
});

x = 3;
// Print out 5 after 2 seconds.
Run Code Online (Sandbox Code Playgroud)

基本上,给定与上述类似的设置,是否有办法打印输出,'5'而不管x在异步超时期间的值是否更改?就我而言,这将是很难简单地通过xresolve()

javascript closures asynchronous promise

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

在 __future__.annotations 不足的情况下避免使用类型注释进行循环导入

当我有以下最小重现代码时:

启动.py

from __future__ import annotations

import a
Run Code Online (Sandbox Code Playgroud)

a.py

from __future__ import annotations

from typing import Text

import b

Foo = Text
Run Code Online (Sandbox Code Playgroud)

b.py

from __future__ import annotations

import a

FooType = a.Foo
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

soot@soot:~/code/soot/experimental/amol/typeddict-circular-import$ python3 start.py
Traceback (most recent call last):
  File "start.py", line 3, in <module>
    import a
  File "/home/soot/code/soot/experimental/amol/typeddict-circular-import/a.py", line 5, in <module>
    import b
  File "/home/soot/code/soot/experimental/amol/typeddict-circular-import/b.py", line 5, in <module>
    FooType = a.Foo
AttributeError: partially initialized module 'a' has no attribute 'Foo' (most likely due to a …
Run Code Online (Sandbox Code Playgroud)

python annotations circular-dependency python-3.x python-typing

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