在下面的代码中,光纤按预期工作(“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);