我通过ES6功能和发电机引起了我的注意.出现在脑海中的一件事是链接Promise对象,我不能用循环来做.我们能做什么其他机制,我们以前不能做到?
我明白这是一个广泛的问题,但我现在还想不出什么,只有承诺.
让我们假设一个具有已定义迭代器的对象的两个类似实现:一个使用生成器的迭代器,另一个使用迭代.这两个都可以使用Array.from,并且它们都可以迭代.这两种方法有哪些区别,哪一种更受欢迎,为什么?是否需要较小的方法?
class Foo {
constructor( ...args ) {
this.f = args;
}
[Symbol.iterator]() {
let c = 0;
const i = {
next: () => {
if ( c < this.f.length ) {
return {value:this.f[c++], done: false};
}
else {
return {value:undefined,done:true};
}
}
};
return i;
}
};
class Bar {
constructor( ...args ) {
this.f = args;
}
*[Symbol.iterator]() {
let c = 0;
if ( c < this.f.length ) …Run Code Online (Sandbox Code Playgroud)