为变量分配产量响应

时间:2017-10-12 23:02:57

标签: javascript generator

如何将yield从yield赋值给变量?

function *foo() {
    var x = yield "foo"
    console.log(x);
}

let bar = foo()
bar.next() // returns {value: "foo", done: false}

bar.next() // returns {value: undefined, done: true}
//console.log logs undefined

我的理解是你可以为变量赋值。

我正在试用谷歌浏览器console

1 个答案:

答案 0 :(得分:1)

您可以将yield的结果值分配给变量。它只是在您对发生器的特定用法中返回undefinedyield表达式的结果是您传递给next调用的参数,但您没有传递任何内容。试试这个:

function* foo() {
    var x = yield "foo";
    console.log(x);
    return "baz";
}

var bar = foo();
bar.next();      // returns {value: "foo", done: false}
bar.next("bar"); // console.log logs "bar"
                 // returns {value: "baz", done: true}