次のコードでは、ファイバーは期待どおりに機能します (「1」と「2」が 2 秒間隔で出力されます)。しかし、私は fiberFunction から "3" を返し、それを同期的に出力したいと考えています。ただし、これは機能しません。出力は次のとおりです。
1
Temp: undefined
2
ファイバー関数から値を返す方法を知っている人はいますか?
var Fiber = require('fibers');
var Future = require('fibers/future'), wait = Future.wait;
function sleep(ms) {
var future = new Future;
setTimeout(function() {
future.return();
}, ms);
return future;
}
var fiberFunction = Fiber(function() {
console.log("1");
sleep(2000).wait();
console.log("2");
return "3";
});
var fiberReturn = fiberFunction.run();
console.log("Temp: " + fiberReturn);