2016-04-05 30 views
0

İşte test ettiğim kod, her seferinde yanıt vermiyor. 20 kere çalıştırdığım gibi, vücudun çıktısını alabileceğim sadece bir kez var. Diğer zamanlarda, herhangi bir hata mesajı göremiyorum bile, hiçbir şey çıktı aldım.düğüm isteği yanıtı beklemeden bekleyemedi, hatta geri bildirimi kullanarak

Bunun nedeni, isteğin yanıtı geri almak için çok hızlı çalışmasıdır.

Bu konuda bana yardımcı olan var mı? Teşekkürler.

get_from_google : function (callback) { 
    request('http://www.google.com', function (error, response, body) { 
     if (!error && response.statusCode === 200) { 
      console.info('Success'); 
      callback(body); 
      //console.log(body); // Show the HTML for the Google homepage. 
     } else { 
      console.info('Failed'); 
      //console.log(body) 
     } 
     console.info('google request') 
    }).on('body',function (body) { 
     callback(body); 
    }) 
} 

Aşağıdaki gibi işlev (err, response, body) içinde çıktı ekledim. Ama hiçbir şey çıktı almamış.

Starting selenium standalone server... 
[launcher] Running 1 instances of WebDriver 
Selenium standalone server started at http://10.33.203.210:53537/wd/hub 
Started 
. 


Ran 1 of 3 specs 
1 spec, 0 failures 
Finished in 0.019 seconds 
Shutting down selenium standalone server. 
[launcher] 0 instance(s) of WebDriver still running 
[launcher] chrome #01 passed 

Process finished with exit code 0 
+0

Eh, uhm, başka açıklamada geri arama (Ben 'dinlemeye neden anlamıyorum demiyorsun body'). İstek talebi nedir - istek modülü veya ne? –

+0

Evet, npm reqeust moduel kullanıyorum. Burada sahip olduğum konu hiçbir şey geri arama var. Fonksiyon içindeki kod (hata, yanıt, gövde) çalıştırılamıyor. – isian8814

+0

Bu özel işlevi nasıl test ettiğinizi tam olarak gösterebilir misiniz? Testin tamamlandığını işaretlemeden önce fonksiyonun tamamlanmasını beklemiyor olabilirsiniz. – mscdex

cevap

0

burada bazı sorunlar var:

  1. talep hataları göz ardı ediliyor İşte
    get_from_google : function (callback) { 
        request('http://www.google.com', function(err, res, body) { 
         console.info('In the callback'); 
         if (err) 
          return callback(err); 
         if (res.statusCode === 200) { 
          callback(new Error('Nothing got back'), body); 
         } else { 
          callback(new Error('Unexpected status code: ' + res.statusCode)); 
         } 
        }); 
    } 
    

    konsolunda çıkıştır. Örneğin, sunucuya bağlanırken bir sorun olduğunda bir hata oluşabilir.
  2. body olay işleyicisinin eklenmesi gereksizdir çünkü diğer geri aramada zaten var.
  3. (err, result[, ...resultn]) numaralı düğüm tarzı geri çağırma imzasıyla devam etmek en iyisidir. kafasında böyle şeyler ile

, gibi bir şey deneyebilirsiniz:

get_from_google: function(callback) { 
    request('http://www.google.com', function(err, res, body) { 
    if (err) 
     return callback(err); 
    if (res.statusCode === 200) { 
     callback(null, body); 
    } else { 
     callback(new Error('Unexpected status code: ' + res.statusCode)); 
    } 
    }); 
} 
+0

Denedim Ama yine de her seferinde cevap alamadım. Test 0.019 saniyede tamamlandı. İsteği tamamlamak için çok mu hızlı? Çünkü işlev içinde vücut çıkışı yapmaya çalışıyorum (err, res, body). Ancak, hiçbir şey çıktı aldım. – isian8814