跳到主要内容

异步编程

回调

回调陷阱

Promise

异步编程的春天

generator

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function*

function* generator(i) {
yield i;
yield i + 10;
}

const gen = generator(10);

console.log(gen.next().value);
// expected output: 10

console.log(gen.next().value);
// expected output: 20

执行后返回一个类似迭代器的 generator,通过调用 next 不断向后执行

async-await

终极方案

  • await 必须在 async 函数中
  • top level await 只有少数环境支持

通过 generator 实现