-3

変数が設定されるまでコールバックを送信して待機したい;

私のコードを参照してください:

function getNick(callback) {
    callback(nickName);
}

nickName 変数は、コードの後半まで設定されていません..

これは可能ですか?

4

3 に答える 3

1

コードを変更したほうがよいかもしれませんが、コールバック関数を変数に保存し、後でコード内で呼び出すことができると思います (nickName が設定された後)。

このようなもの

var nickSetCallback;

function getNick(callback){
   nickSetCallback = callback;
}


// .. More code ..

nick = "something";

if(nickSetCallback !== undefined)
   nickSetCallback(nick);
于 2013-08-20T13:57:17.223 に答える
0

データを観察するメカニズムを提供する Knockout や Reactive Extensions などのライブラリを使用します。

ノックアウトでそれを行う方法は次のとおりです。

var nickName = ko.observable();
function getNick(callback) {
    if (nickName()) {
       callback(nickName());
    }
    else {
       var d = nickName.subscribe(function (n) {
           callback(n);
           d.dispose();
       });
    }
};

// ...
getNick(function (value) { ... });
nickName("bannannas");
于 2013-08-20T14:00:11.900 に答える