3

次のコードでは、ファイバーは期待どおりに機能します (「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);
4

1 に答える 1