其实就是常规的 generator 用法,也是 co , koa 的基本原理。
……我折腾了一个 57 字符的 简易 实现。
在 Console 里运行一发试试吧!
var d=(f,t=f(),r=t.next())=>r.done||setTimeout(d,r.value,f,t); // <- source code
d(function *() { // <- wrapper
// <- magic
console.log('foo'); // output 'foo'
yield 1000; // delay 1 sec
console.log('bar'); // output 'bar'
yield 1000; // delay 1 sec
console.log('baz'); // output 'baz'
});