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/m.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燈, 水草

請輸入看板名稱,例如:BabyMother站內搜尋

TOP