var request = require('request-promise')
var reqs = Promise.resolve()
var arr = await request.get('/categoryAll')
var promises = arr.map((parentId) {
return request.get(/category/parentId)
})
var results = [];
for (let promise of promises) {
results.push(await promise)
}
console.log(results)
// or
var results = await Promise.all(promises);
console.log(results)
正如大家知道的javascript 是单线程的,如果你要执行一个长时间运行的任务,那么将会进程阻塞, 引起其他事情的处理(ui挂起...),为了解决这个问题,javascript实现了异步,但是会严重依赖 回调。
callback hell
callback的问题是,会导致代码不易读,如果我在callback里嵌套callback
我们改如何处理callback` hell, 在ES6中提供Promise,可以减少callback,它可以让代码的流程更清晰,如果我们用Promises,我可以改写上面的代码呢 ?
Promise
Promise不仅让你的代码更短了,也更易读了,但是:
Promise的问题
如,我要获取所有的一级类目,然后获取所有二级类目
显然,prmise 在处理复杂的callback的时候,并没有很好的解决callback hell
Async Await