0

YUI サンドボックス内からデータを取得し、それを別の関数に渡したいです。たとえば、次のようなものがあるとします。

YUI().use('node','stylesheet', function (Y)
{
    var sheet = Y.StyleSheet('#myStyle');
    // Some logic...
    var styleSheetText =  sheet.getCssText("h1");
});

console.log(styleSheetText); //still undefined

console.log で値styleSheetTextを取得する方法は? JavaScript の問題なのか、YUI の問題なのかはわかりません。

4

1 に答える 1

2

それは両方です。JavaScript では、変数が宣言されている関数の外で変数の値を確認することはできません。YUI().use() のコールバック関数内で styleSheetText を宣言すると、そのコールバック関数の外でその値を確認することはできません。

これは YUI の問題でもあります。YUI().use() へのコールバック関数は非同期で実行されます。つまり、実行時間は予測できませんが、常に console.log() ステートメントが実行された後になります。したがって、変数の可視性の問題を回避するために styleSheetText をグローバルにしたとしても、まだ未定義と表示されます。

通常、YUI().use() のコールバック関数内にすべてのコードを配置します。それは両方の問題を解決します。

于 2013-11-06T07:09:23.537 に答える