JavaScript实现串行请求的示例代码
使用async和await
promise实现
依照 promises 规范,一旦一个 promise 被创建,它就被执行了。如果then方法里返回的是一个promise对象,那么执行下一个then 的时候必定是在上一个then执行完之后执行。
关键点在于then的时候再创建
array.prototype.reduce + async/await 版本
array.prototype.reduce + promise 版本
# 执行结果
{ req: 'pm:04:49:08', rep: 'pm:04:49:11', item: 1 }
{ req: 'pm:04:49:11', rep: 'pm:04:49:14', item: 2 }
{ req: 'pm:04:49:14', rep: 'pm:04:49:17', item: 3 }
{ req: 'pm:04:49:17', rep: 'pm:04:49:20', item: 4 }
array.prototype.map + promise 版本
用 map 遍历时,需要过滤初始promise的返回值,并且在遍历结束后,需手动执行最后以后一个promise,否则就会变成如下结果
# 执行结果
{}
{ req: 'pm:04:49:08', rep: 'pm:04:49:11', item: 1 }
{ req: 'pm:04:49:11', rep: 'pm:04:49:14', item: 2 }
{ req: 'pm:04:49:14', rep: 'pm:04:49:17', item: 3 }
以上结果明显不是我们所需要的,但是需要手动过滤第一个promise和执行最后一个promise,会增项不必要的代码量和出错率 后将 mappromise 修改如下,其原理和array.prototype.reduce+promise版本类似
其他
array.prototype.foreach、array.prototype.filter、array.prototype.some、array.prototype.every等方法和array.prototype.map类似,就不过多赘述
以上就是javascript实现串行请求的示例代码的详细内容,更多关于javascript实现串行请求的资料请关注其它相关文章!