需要执行的异步函数:有2种方式,普通带回调的函数,在函数之后最后必须调用回调函数传入err和result。如果err为空,则表明当前异步操作成功,将继续下一个异步执行,如果传入err不为空,则整个异步队列任务的状态即为false终止执行下面的任务。
另一种方式是es7的 async 函数,将return的值(即resolve的值)定义为此次的返回值,如果异常则自动将异常信息(即reject值)用于error信息
所有异步方法执行之后的回调函数,参数为err,results
如果方法中没有传入callback参数,则返回promise
方式一:传入callback
方式二:不传入callback,使用promise的then、catch方式
异步队列函数,同一时间并发执行的的函数的数量,仍属于异步,只不过做了每次执行的数量限制
异步串行执行,必须等到前一个异步任务状态sucess,才执行下一个任务。
function queue(arr, item) {// 请把你的代码写在这里
arr.push(item)
var del = arr.shift()
return del // 请修改这一行
}
// 初始化测试数据
var testArr = [1,2,3,4,5]
// 控制台输出
console.log("Before: " + JSON.stringify(testArr))
console.log(queue(testArr, 6))// 你可以修改这一行来测试你的代码
console.log("After: " + JSON.stringify(testArr))