推 eight0: 環境是 Node.js 的話可以試試 child_process.execSync06/19 18:53
是在瀏覽器下的純js喔
※ 編輯: awpadam (223.140.179.151), 06/19/2018 18:59:49
推 Kenqr: await?06/19 19:00
因為用特殊瀏覽器的關係,我們的環境只支援ES6,沒有支援await
※ 編輯: awpadam (223.140.179.151), 06/19/2018 19:06:52
推 sa0124: 哇 這個好難 用settimeout把同步包裝成非同步 讓下一個非06/19 19:07
→ sa0124: 同步接參數呢? 06/19 19:07
→ sa0124: (這做法很爛 看有沒有更好的做法)06/19 19:07
其實我主管的訴求就是:把 //對service的接續流程
這個部分包成函式太麻煩了,因為裡面有各式各樣的code
也有非同步的code
所以才想說把getService 這個函式想辦法模擬成同步的,是最好的辦法
所以你的辦法可能對我就不適用了~
※ 編輯: awpadam (123.193.141.167), 06/19/2018 19:46:21
推 davidsky: 用await 然後用babel編譯成ES6/5, 不過這樣還是得改code06/19 20:16
請問這樣的話,我們的瀏覽器不支援await,還是會work嗎?它會自己用對應的語法嗎?
※ 編輯: awpadam (123.193.141.167), 06/19/2018 20:33:41
推 mmis1000: babel 最低能 target es3,await什麼的會幫你全轉掉06/19 21:22
推 shter: 用 while 等到有值會報無限迴圈當掉嗎?06/19 21:51
主管是有提過可不可以用無限迴圈模擬,但是我覺得這樣好像很吃資源,所以上來問版友
※ 編輯: awpadam (123.193.141.167), 06/19/2018 22:01:24
推 mmis1000: 在js用dead loop等值,你等到往生都等不到 06/19 22:01
好像是欸,因為是單執行緒的,會卡死在while
※ 編輯: awpadam (123.193.141.167), 06/19/2018 22:02:58
→ mmis1000: 基於 Event Loop 的語言,你用 dead loop 就是自殺 06/19 22:02
推 sa0124: 哦哦 懂你意思了 那就是用await了 但我印象中我只裝babel06/19 23:26
→ sa0124: 好像沒跑成功,還要再裝額外的polyfill才行06/19 23:26
→ superpai: 就算用了 await,你還是要在該加async的地方加async06/20 05:28
→ superpai: 你逃不了改寫的。 06/20 05:28
有點慘,謝謝大家提供的意見,謝謝
※ 編輯: awpadam (223.140.44.185), 06/20/2018 08:34:09
推 steven11329: es6 generator 06/23 14:40