ns09005264 最近的时间轴更新
ns09005264

ns09005264

V2EX 第 156949 号会员,加入于 2016-01-26 11:00:47 +08:00
今日活跃度排名 5276
ns09005264 最近回复了
1 天前
回复了 whnoob 创建的主题 Java 功能设计思路
省-市-区:可以用地区编号拼接来表示,省的编号 2 位,市的编号 2 位,区的编号 5 位,比如直辖北京市海淀区:000100005 ,广东省广州市没有区:1001 ,这样数据的地点信息可以放在一个字段里,查询也好查,也支持市或区的缺省。
功能点 2 是指数据有多种类型,每种类型的字段都不一样是吧,用商品信息举例:
{类型:手机,名称:小米,CPU:骁龙,Memory:12G},
{类型:手机,名称:华为,CPU:麒麟,Memory:12G},
{类型:键盘,布局:75,按键轴:青轴},
{类型:水果,名称:苹果,重量:15g}
如果数据类似这种的话,可以用字段映射表来解决,
数据的表的格式像这样:
类型: enum; field01: varchar, filed02:varchar,boolField01:boolean;

还需要几张表来描述字段之间的映射关系,比如类型为手机时,将名称字段映射为 field01 字段,略微有些复杂,涉及到反射、映射查询、前端映射展示等。
> 这让我想起《这个杀手不太冷》里的杀手说,他杀人的秘诀是用匕首,而菜鸟新人一般先学狙击。高手用匕首确实有很多优点,但缺点也很明显:你要先成为高手。
@ChrisFreeMan 这句话我的理解是菜鸟应该学 Typescript ,类型安全+丰富的自动补全能减少很多基础错误,高手可以用 Javascript ,经验丰富,长期积累下来的编程范式会避免一些错误。
Webassembly+WebGPU ,能当多平台客户端用,也能在浏览器中运行。
像这样: https://mvlabat.github.io/bevy_egui_web_showcase/index.html
4 天前
回复了 lucasj 创建的主题 程序员 推荐几个你一直在用的开源项目工具
i18n, Internationalization, 本地化
先用 docker0 这个虚拟网卡的 ip 试试连通性吧,也就是 172.0.0.0/24 这个网段的 ip ,这个网段不用走路由器。
没有 bug ,没人去 github 上看代码,没人看就没有星星,是有这个可能的。
@abccccabc
我重新确认了下,你问题里的代码没问题啊,也不用提取到循环外的函数里,除非在 post 回调函数里使用了 var i 变量,把关键的问题代码隐藏了。
```
var allimg = ["https://www.baidu.com/s/1.jpg", "https://www.baidu.com/s/2.jpg", "https://www.baidu.com/s/3.jpg", "https://www.baidu.com/s/4.jpg"];
var oldcontent = "<img src='https://www.baidu.com/s/1.jpg'><img src='https://www.baidu.com/s/2.jpg'><img src='https://www.baidu.com/s/3.jpg'><img src='https://www.baidu.com/s/4.jpg'>";
for (var i = 0; i < allimg.length; i++) {
post(allimg[i], function(ret) {
oldcontent = oldcontent.replace(ret['oldimgurl'], ret['newimgurl']);
console.log(oldcontent);
});
}
function post(url, callback) {
const time = Math.floor(Math.random() * 100 + 100);
setTimeout(() => callback({"oldimgurl": url, "newimgurl": url + "new"}), time);
}
```
输出:
```
<img src='https://www.baidu.com/s/1.jpgnew'><img src='https://www.baidu.com/s/2.jpgnew'><img src='https://www.baidu.com/s/3.jpgnew'><img src='https://www.baidu.com/s/4.jpgnew'>
```
https://runjs.co/s/IUEhsmWc2
你问题里的代码没有问题啊, oldContent 最终都会被正确替换呀。
有问题的是 for 循环的 var i ,但是你代码里也没有使用,除非你隐藏了和索引 i 相关的代码。
```
var str = "Hello ";
for (var i = 0; i < 5; i++) {
wait().then(() => {
str = str + "i";
console.log("index: ", i, "str: ", str);
});
}
async function wait() {
return new Promise((resolve) => {
const time = Math.floor(Math.random() * 100 + 100);
setTimeout(resolve, time);
});
}
```
这段代码和你的基本一样,输出是这样的:
```
index: 5 str: Hello i
index: 5 str: Hello ii
index: 5 str: Hello iii
index: 5 str: Hello iiii
index: 5 str: Hello iiiii
```
也就是说 var i 类似全局变量

如果把 var i 换成 let i ,输出是这样的:
```
index: 1 str: Hello i
index: 4 str: Hello ii
index: 2 str: Hello iii
index: 0 str: Hello iiii
index: 3 str: Hello iiiii
```
每次 post 完成后的回调都能正确获得自己的索引。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2825 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 13ms · UTC 12:14 · PVG 20:14 · LAX 05:14 · JFK 08:14
Developed with CodeLauncher
♥ Do have faith in what you're doing.