作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
像这段带有 ES6 的代码:
function* outer() {
function* inner() {
var a = 100
yield a
}
var gen = inner()
var result = gen.next()
yield result.value
}
function caller() {
var gen = outer()
var result = gen.next()
}
caller()
我可以在没有外部桥接功能的情况下直接在调用者中处理内部的生成器结果吗?如果不是,是否有更好的设计来解决生成器自动运行和生成器递归?谢谢
另一个问题? python 呢?
def outer():
def inner():
a = 100
yield a
b = 200
yield b
gen = inner()
result = next(gen)
yield result
# it works not like js version
# yield inner()
def caller():
gen = outer()
result = next(gen)
print("caller result : ", result)
caller()
最佳答案
在生成器中使用 yield*
,您可以从另一个生成器生成所有项目:
function* outer() {
function* inner() {
var a = 100
yield a
}
yield* inner();
}
function caller() {
var gen = outer()
var result = gen.next()
console.log(result);
}
caller()
关于javascript - 有没有办法从多层函数或内部函数中产生变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57108814/
我是一名优秀的程序员,十分优秀!