Promise循环执行多个请求
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Promise循环执行多个请求相关的知识,希望对你有一定的参考价值。
参考技术A // 输出结果为 [ 0, 1, 2 ] 执行了 3 秒// 此方法用在 一个循环体中,拿到每个异步请求返回的值 , 并等待循环中的 所有异步函数执行完,再进行下一步操作!
// 如 node.js 中 拿到购物车表的数据,只有商品的id ,没有商品的具体信息, 需要去遍历购物车的表, 再用每一个商品id 去遍历商品表,去拿商品具体信息!
mounted()
let array = []
for(let i=0; i<3; i++)
array.push(this.testForPromise(i))
Promise.all(array).then((res) =>
console.log(res) // [ 0, 1, 2 ]
)
,
methods:
testForPromise(num)
return new Promise((resolve, reject) =>
setTimeout(() =>
resolve(num)
, 3000)
)
c++中的异步编程——future,promise
参考技术A c++中创建线程很方便,例如下面但是当我想异步获取线程的执行结果,就不太方便,join()并不能返回结果。
std::async,通过这个异步接口可以很方便的获取线程函数的执行结果。std::async会自动创建一个线程去调用线程函数,它返回一个std::future,这个future中存储了线程函数返回的结果,当我们需要线程函数的结果时,直接从future中获取,非常方便。
std::future提供了一种访问异步操作结果的机制。从字面意思来理解,它表示未来,这个名字非常贴切,因为一个异步操作我们是不可能马上就获取操作结果的,只能在未来某个时候获取,但是我们可以以同步等待的方式来获取结果,可以通过查询future的状态(future_status)来获取异步操作的结果。future_status有三种状态:
获取future结果有三种方式:
通过成员函数set_value可以设置std::promise中保存的值,该值最终会被与之关联的std::future::get读取到。需要注意的是:set_value只能被调用一次,多次调用会抛出std::future_error异常
输出
分桶常用,返回下界的iter
通常这么找下标
以上是关于Promise循环执行多个请求的主要内容,如果未能解决你的问题,请参考以下文章