我是 Node.js 的新手,并意识到它与客户端 javascript 的最大区别之一是一切都是异步的。
为了尝试解决这个问题,我尝试使用fibrous将我的代码转换为更具功能性的编程风格,但遇到了一些问题:
如何使以下纤维代码起作用?
例如,我希望下面的代码打印 1,2,3,但它打印 1,3,2
function test()
{
var fibrous = require('fibrous');
var fs = require('fs');
fibrous.run(function() {
var data = fs.sync.readFile('/etc/passwd');
console.log('2');
});
}
function runTest()
{
console.log('1');
test();
console.log('3');
}
runTest();
// This prints 1,3,2 to the console, not 1,2,3 as I'd like.
在一个真实的用例中,上面的例程将包装一个运行异步的 DB 方法,并使其如此我可以编写如下内容:
var dbTable = new dbTableWrapper();
var data = dbTable.getData();
/*
... do things with the data.
The "getData" routine is the same as my "test" function above.
*/