实现队列
有时候我们不希望所有动作一起发生,而是按照一定顺序,逐个进行。
常见错误:1.没有把.then()产生的新Promise实例赋值给promise,没有生成队列。
2.Promise实例创建之后,会立刻运行执行器代码,所以这个也无法达成队列的效果。
实现队列

两个常见错误:


注意:promise实例一旦创建就立刻执行
reduce queue
forEach queue
实现队列- forEach / reduce



常见2个错误


使用.reduce()方法实现队列时,常见的错误
使用.forEach()实现队列时,常见的错误
使用.reduce()实现队列
实现队列,使用.forEach()方法
实现队列 ,按照顺序逐个进行。
forEach实现队列
reduce() 功能
一、实现队列
1、forEach()
(1)
function queue(things) {
let promise = Promise.resolve();
things.forEach(thing => {
promise = promise.then(() => {
return new Promise(resolve => {
doThing(thing, () => {
resolve();
});
});
});
});
return promise;
}
queue(['lots', 'of', 'things', ....]);(2)常见错误:没有把.then()产生的新的promise实例赋给then,没有生成队列。
2、reduce(),数组的一端遍历到另一端。
(1)
function queue(things) {
return things.reduce((promise, things) => {
return promise.then(() => {
return new Promise(resolve => {
doThing(thing, () => {
resolve();
});
});
});
}), Promise.resolve();
}
queue(['lots', 'of', 'things', ....]);(2)常见错误:Promise实例创建之后,会立刻执行执行器代码,所以这个也无法达成队列的效果。
promise() raduce队列
promise()队列
常见错误2
常见错误1
一、实现队列
1、forEach()
(1)
function queue(things) {
let promise = Promise.resolve();
things.forEach(thing => {
promise = promise.then(() => {
return new Promise(resolve => {
doThing(thing, () => {
resolve();
});
});
});
});
return promise;
}
queue(['lots', 'of', 'things', ....]);(2)常见错误:没有把.then()产生的新的promise实例赋给then,没有生成队列。
2、reduce(),数组的一端遍历到另一端。
(1)
function queue(things) {
return things.reduce((promise, things) => {
return promise.then(() => {
return new Promise(resolve => {
doThing(thing, () => {
resolve();
});
});
});
}), Promise.resolve();
}
queue(['lots', 'of', 'things', ....]);(2)常见错误:Promise实例创建之后,会立刻执行执行器代码,所以这个也无法达成队列的效果。
promise循环队列