Ai
3 Star 10 Fork 3

ifer/vue3_ts_77

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
test.js 1.59 KB
一键复制 编辑 原始数据 按行查看 历史
ifer 提交于 2022-07-30 17:24 +08:00 . Promise.all
// 原型链:多个对象之间通过 `__proto__` 链接起来的这种关系就是原型链。
// 浅拷贝:只拷贝对象的第一层,如果对象内容还有对象的话,其实拷贝是一个引用地址,对此对象(对象中的对象)的修改会相互影响。
// 深拷贝:递归浅拷贝的过程。
const obj = {
age: 18,
info: {
name: 'xxx',
},
}
// 浅拷贝会相互影响,【改对象中的复杂数据类型中的内容会相互影响】
const newObj = {}
for (let attr in obj) {
newObj[attr] = obj[attr]
}
// 这叫改内容
// newObj.info.name = 'yyy'
// 这叫改引用地址,不会影响原来的
newObj.info = { name: 'yyy' }
console.log(obj.info.name) // 'xxx'
// 深拷贝,【都不会相互影响】
/* const newObj = JSON.parse(JSON.stringify(obj))
newObj.info.name = 'yyy'
console.log(obj.info.name) // 'xxx' */
// 两个完全是一个东西,【改啥都会相互影响】
/* const newObj = obj
newObj.age = 19
console.log(obj.age) */
/* const fn1 = () => {}
function fn2() {}
fn1.aaa = function () {}
fn2.bbb = function () {} */
function p(i) {
return new Promise((resolve) => {
setTimeout(function () {
resolve(i)
}, 2000)
})
}
/* async function fn() {
for (let i = 0; i < 100; i++) {
const r = await p(i)
console.log(r)
}
}
fn() */
const arr = []
for (let i = 0; i < 100; i++) {
arr.push(p(i))
}
// 并发多个请求
// 并且 r 里面的返回结果和 arr 里面的 Promise 的书写顺序是一致的
Promise.all(arr).then((r) => {
console.log(r)
})
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/ifercarly/vue3_ts_77.git
git@gitee.com:ifercarly/vue3_ts_77.git
ifercarly
vue3_ts_77
vue3_ts_77
master

搜索帮助