在nodeschool上学习时遇到的问题:learnyounode里的第九题:
写一个小程序,要求输入三个参数url,使用该程序模拟三次get请求分别从这三个url获取数据,全部返回后打印到控制台上。要求:打印出的响应数据要和三个url参数的顺序一样,即打印出的第一条应该是第一个url返回的数据,url由命令行参数提供(process.argv)。
因为node是异步的,所以不知道应该如何控制这个输出的顺序,求帮忙!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
原生版,用results和counter两个变量维护状态,保持顺序靠那个idx变量实现
能够完成需求,但容错、扩展、可读性一塌糊涂
request+bluebird版
题目没说并行请求还是串行,这里都是并行的,串行的话反正天然保持顺序闭着眼睛打印就行
一般以前我碰上这种情况都会果断的选择回调来写的,代码大概是下面这个样子:
但是自从接触了 Promise 之后感觉这样写异步要顺畅多了,所以慢慢的也转变过来了,代码大概是这个样子的: