Stylus 渲染功能是同步的吗?

Is Stylus render function Synchronous?

我正在用 JavaScript API 编译我的 Stylus .styl 样式表:http://learnboost.github.io/stylus/docs/js.html

  var stylus = require('../')
    , str = require('fs').readFileSync(__dirname + '/test.styl', 'utf8');

  stylus(str)
    .set('filename', __dirname + '/test.styl')
    .import('mixins/vendor')
    .render(function(err, css){
    if (err) throw err;
    console.log(css);
  });

它没有提到它使用的回调是同步的还是异步的。尽管根据我的经验,似乎 是同步的,但我不确定。是吗?

render函数是伪异步的,因为它接受回调,但函数内部的所有调用实际上都是同步的。这个函数还有一个完全同步的版本(如果你不提供回调):

var styl = stylus(str)
  .set('filename', __dirname + '/test.styl')
  .import('mixins/vendor');

console.log(styl.render()); // outputs compiled css