Asynchronous 如何同步连接YUI3模块?

Asynchronous 如何同步连接YUI3模块?,asynchronous,module,yui,loading,Asynchronous,Module,Yui,Loading,我想同步附加YUI模块 Given the YUI modules are already on the page When I run: console.log YUI().use('base').Base Then I get `undefined` 但是, When I run: YUI().use('base', (Y) -> console.log Y.Base) Then I eventually get the Y.Base ctor function 看起来加载程序正在

我想同步附加YUI模块

Given the YUI modules are already on the page
When I run: console.log YUI().use('base').Base
Then I get `undefined`
但是,

When I run: YUI().use('base', (Y) -> console.log Y.Base)
Then I eventually get the Y.Base ctor function

看起来加载程序正在附加async,因为它使用回调方法工作正常。IIRC第一种方法也应该有效。我缺少什么?

如果您在Node.js这样的受控环境中使用YUI,那么您应该能够使用
useSync
配置:

YUI({ useSync: true }).use('base').Base

但在浏览器或任何其他客户端运行时中,您应该坚持
Y的异步性质。使用
,以便loader可以根据功能检测等计算要附加的模块的适当列表。仅在pase中手动包含模块是不够的。想象一下IE中的
scrollview base
,它需要一个名为
scrollview base IE
的特殊模块,除非您在构建初始标记时进行检测,该标记仅在IE中运行时才包含该模块,否则您将丢失一个模块。同样,在加载东西时,请坚持异步模式。

YUI模块确实希望通过回调中的Y对象进行调用。如果您确实知道所需的所有代码都已加载到页面上,则可以通过use*同步附加它们。有关示例,请参见

这是一个受控的环境。我想我理解异步方法的好处。尽管如此,我还是想把这件事做完,但似乎不行。这把小提琴有毛病吗?