JsPhpBBS谈天说地 → 浏览:帖子主题
* 帖子主题:一个简单的 co 函数
風雲 (ID: 2)
等级:骑士
积分:18
发帖:1
来自:保密
注册:2024-05-04 22:54:28
造访:2024-05-31 14:19:41
[ 第 1 楼 ] 回复
co 用于运行生成器

[您可以先修改代码再运行]

2024-05-04 22:55:27 IP:已设置保密
風雲 (ID: 2)
等级:骑士
积分:18
发帖:1
来自:保密
注册:2024-05-04 22:54:28
造访:2024-05-31 14:19:41
[ 第 2 楼 ] 回复
<script type="text/javascript">
function co(gen, func) {
    if(!func) return new Promise(ok => co(gen, ok));
    var run = function(arg) {
        var g = gen.next(arg), v = g.value;
        g.done ? func(v) : v(run);
    }; run();
}

function* test() {
    yield ok => setTimeout(ok, 1000);
    document.write("Started");
    yield ok => setTimeout(ok, 1000);
    document.body.innerHTML += "<br />Ended";
    yield ok => setTimeout(ok, 10);
    return "Over";
};
co(test()).then(alert);
</script>
2024-05-04 23:07:30 IP:已设置保密
風雲 (ID: 2)
等级:骑士
积分:18
发帖:1
来自:保密
注册:2024-05-04 22:54:28
造访:2024-05-31 14:19:41
[ 第 3 楼 ] 回复
yield 停顿
2024-05-31 14:21:08 IP:已设置保密
風雲 (ID: 2)
等级:骑士
积分:18
发帖:1
来自:保密
注册:2024-05-04 22:54:28
造访:2024-05-31 14:19:41
[ 第 4 楼 ] 回复
特殊
2024-05-31 14:21:31 IP:已设置保密
分页: 1, 共 1 页
快速回复主题
账号/密码
用户: 没有注册? 密码:
评论内容