2015-04-06 49 views
1

有沒有辦法在V8中執行延續?如果沒有,是否有另一個C++的JavaScript引擎可以這樣做?V8中的延續或其他C++ JavaScript解釋器

我想寫一個應用程序,它使用支持延續的JavaScript解釋器,很像Rhino does in Java

這是主要用於遊戲開發的地方,它非常有用(甚至是必不可少的),腳本能夠「暫停」直到遊戲引擎重新控制它 - 例如,等待玩家的輸入過場動畫恢復了其連鎖事件。 V8聽起來像是目前最有前途的用於C++應用程序的JavaScript引擎,但是從我能找到的資源中,V8有no planssupport continuations。不過,這些帖子來自4 - 6年前,所以他們可能會或可能不會更新。

回答

4

新版本的JavaScript ES6在生成器的名稱下具有類似延續的特性。我相信V8現在應該有發電機支持。如果沒有,你可以使用像babeljs這樣的JavaScript編譯器。

+0

我從來沒有聽說過發電機,但是,他們聽起來很完美!看起來V8現在也支持生成器,因爲一個簡單的示例在Chrome控制檯中運行良好。 – Josh1billion 2015-04-06 04:56:53

+2

但請注意,發電機故意僅提供_shallow_ _one-shot_ continuations。 AFAICT,沒有JS實現會給你一般的延續。 – 2015-04-06 08:58:27

+0

@AndreasRossberg說延續很淺時你的意思是什麼?你的意思是腳本的某些方面的狀態在腳本繼續之後不會持續嗎? – Josh1billion 2015-04-06 15:38:02