Generator异步问题

在genrator里模拟异步,在异步函数里赋值,得到undefined。如果用法不对,求轻喷。demo代码如下。

 function test_generator (){
        setTimeout(function(){
            return 1;
        },1000);
    }
    function* generateNumber() {
        var test = yield test_generator();
        console.log(test);
    }
    var result = generateNumber();

图片描述
得到的test是undefined,求指导要怎么样才能让test值为1。

阅读 2.2k
1 个回答
function test_generator (){
    setTimeout(function(){
        result.next(1);
    },1000);
}
function* generateNumber() {
    var test = yield test_generator();
    console.log("test = " +test);
}
var result = generateNumber();
result.next();
//输出结果:test = 1
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进