SORU
15 ŞUBAT 2011, Salı


Nasıl bir işlevi, bir geri arama kullanarak node.js adı olmuştur kadar bekletmek

Bu gibi basit bir işlevi var:

function(query) {
  myApi.exec('SomeCommand', function(response) {
    return response;
  });
}

Temelde myApi.exec, arama ve geri arama lambda verilen yanıt vermek istiyorum. Ancak, yukarıdaki kod çalışmıyor ve sadece hemen döner.

Sadece çok hackish bir girişim için, bir işe yaramamış, ama en azından başarmak için çalışıyorum ne siz anladınız aşağıda denedim:

function(query) {
  var r;
  myApi.exec('SomeCommand', function(response) {
    r = response;
  });
  while (!r) {}
  return r;
}

Temelde, iyi bir düğüm.olay tahrik' bu yola?/js Benim görevim geri çağırdı gelene kadar bekle, yerine geçen değeri döndürmek istiyorum.

CEVAP
15 ŞUBAT 2011, Salı


"Yapma bunu." node.js /iyi olay tahrik ^strong>bekle.

Başka bir düğüm gibi olay tahrik sistemleri ile çalışan hemen hemen her şey gibi, fonksiyon hesaplama tamamlandıktan sonra çağrılan bir geri çağırma parametre kabul etmelidir. Arayan, "" normal anlamda, ama sonuç değeri işleyen rutin göndermek yerine: . döndürülecek değeri için beklemeyecek

function(query, callback) {
  myApi.exec('SomeCommand', function(response) {
    // other stuff here...
    // bla bla..
    callback(response); // this will "return" your value to the original caller
  });
}

Sen göremiyorsun diye bu gibi kullanabilirsiniz:

var returnValue = myFunction(query);

Ama bu gibi:

myFunction(query, function(returnValue) {
  // use the return value here instead of like a regular (non-evented) return value
});

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Amir Parmar

    Amir Parmar

    25 Kasım 2010
  • failblog

    failblog

    17 HAZİRAN 2008
  • tutvid

    tutvid

    19 AĞUSTOS 2006