背景:v8支持收益率(舊聞,我知道),那是偉大的JavaScript代碼,如什麼是node.js中使用回調做掉(見https://wingolog.org/archives/2013/05/08/generators-in-v8)node.js:如何從C++模塊中產生?
問題 :由於JavaScript協程可以調用C++代碼(通過模塊),被調用的C++如何執行yield操作?爲了說明:
// javascript
function* values()
{
yield 27;
mycppmodule.someFunction();
}
// c++
mycppmodule::someFunction()
{
__somehow_yield(28); // how can we make this happen?
}
// user of the code above
var o = values();
o.next(); // returns 27 - came from javascript above
o.next(); // returns 28 - came from c++ above, which is invoked by js
我懷疑答案是V8 API(https://v8docs.nodesource.com/node-7.4/)的地方,但我的搜索並沒有屈服(雙關語意)任何結果...
爲什麼不這樣做'產量mycppmodule.someFunction()'和移動的問題了層? – Alnitak