Ajax 板


LINE

范例 http://pastebin.com/hz39fQWC 期望的状况是,写入档案的内容是 0,1,2,3,4.....,999, 但实际上,档案的内容可能会变成这样: ....8,9,11,10,12.... 也就是说,呼叫 fs.appendFile() 的顺序 并不代表底层实际上处理的顺序。 可能会有人回答: 用 fs.appendFileSync 或是 把字串黏好之後再写到档案 但我想问的不是这个 我贴出来的只是一个简单的范例 这种底层处理顺序问题 可能出现在,资料库、socket等等,任何由底层去处理的异步动作上 只要底层实作时,不管顺序问题 就可能遇到这种状况 请问有什麽方式可以保证底层异步行为的处理顺序问题? --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 125.227.87.115
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Ajax/M.1485154760.A.79E.html
1F:推 jmlntw: Promise 01/23 15:11
2F:→ LaPass: 也就是说只能自己处理好顺序问题,然後用Promise去叫处理 01/23 15:56
3F:→ LaPass: 动作这样吗? 01/23 15:56
4F:推 jmlntw: 例如这样:http://pastebin.com/ZyL6x4xJ 01/23 16:41
5F:→ jmlntw: 当然如果能用 async 或 bluebird 之类的套件就能更简洁了 01/23 16:41
6F:→ LaPass: 了解,感谢。 01/23 16:49
7F:推 visa9527: 要确保顺序就是要一个完成後 callback 回来再跑下一个 01/23 17:40
8F:推 dododavid006: jmlntw 的范例还是不保证顺序吧 Promise 一建立就开 01/23 17:44
9F:→ dododavid006: 始执行了 一开始就全部建好的话是不保证执行顺序的 01/23 17:45
10F:推 Kenqr: j大的code没问题吧 6~13行的函数宣告不会执行内容 01/23 18:00
11F:推 s25g5d4: 把你要执行的动作包成 function 推进 array 里面 01/23 18:00
12F:→ s25g5d4: 然後 function 执行後回传一个 Promise 01/23 18:00
13F:→ Kenqr: 15~18 把这个函数塞进array 1000次 一样没执行 01/23 18:00
14F:→ s25g5d4: 对 array 里面的 function 依序执行并等 Promise 结束 01/23 18:01
15F:推 s25g5d4: https://github.com/azproduction/promise-queue 01/23 19:43
16F:推 dododavid006: 对耶 我没看清楚 不好意思 眼残以为在 17 行执行了 01/23 20:16
17F:推 mrbigmouth: 只要是async的东西就是不能确保顺序 写js这是死观念 01/24 13:19
18F:→ mrbigmouth: 要确保顺序就是另外加手序去确保 01/24 13:19
19F:推 TETZ: 之前写gulp task时是用recursive跑完一个task再跑下一个 01/26 02:20
20F:→ TETZ: http://pastebin.com/SD2SNT2E 大概4这样 01/26 02:20
21F:→ TETZ: 而且我本来以为会比async慢但算了时间居然比较快耶 01/26 02:21
22F:推 mmis1000: 这种时候,你应该直接 fs.createWriteStream() 01/26 21:23
23F:→ mmis1000: 然後剩下的让node帮你做 01/26 21:24
24F:→ mmis1000: 手动处里应该是只有node本身没有这种机制时才用 01/26 21:32
25F:→ LaPass: 我知道你的意思。我这只是举例用fs来表示而已,这可以用在 02/15 10:33
26F:→ LaPass: 所有底层异步的问题上 02/15 10:34
27F:→ mmis1000: 然後所谓async,本来就只保证工作结束会通知吧? 02/17 20:33
28F:→ mmis1000: 无论是失败或成功,顺序之类打从一开始就不再考虑范围 02/17 20:34







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Boy-Girl站内搜寻

TOP