1.async/await 与Promise的关系
async/await是Promise的语法糖
let result = await func()
// => 等价于
func().then(result => {// code here
})async function func () {return 1
}
// => 等价与
function func () {return new Promise(resolve => resolve(1))
}
2.map方法的使用
let a= [1, 5, 10, 15];
let b= a.map((x) => {return x * 2;
});// b is now [2, 10, 20, 30]
// a is still [1, 5, 10, 15]
这是map的一般使用场景,但是当我们的一些计算操作变为异步的:比如某个参数需要请求额外接口才能获得
这时候返回的就是由Promise组成的数组了
Promise有个函数是Promise.all,它会将由Promise组成的数组依次执行,并返回一个Promise对象,这时候结果集就出来了
用Promise.all包装整个数组,然后await 获取最终结果
最后附上代码:
let list = await Promise.all(arr.map(async (e) => {let url = await this.getVideoUrl(e.camImet);e.vData = {hlsurl: url,cameraId: e.camImet,};return e;})
);
// console.log(list);