2016-03-22 13 views
0

Bir testin dışında belirli bir kodu, bir değer döndürmesi gereken bir işleve taşımakta zorluk çekiyorum. İştenightwatch.js Bir testin dışındaki fonksiyondan dönüş değeri

Test dosyası

function getCountOfTopics(browser){ 
 
    var count; 
 
    browser.getText('@sumTopics', 
 
     function(result){ 
 
      count = result.value; 
 
      console.log(result.value); 
 
     } 
 
    ); 
 
    return count; 
 
}; 
 

 
module.exports = {  
 
    
 
    'Create article' : function(browser){ 
 
     var noOfThreadsByInlineCode, noOfThreadsByFunction; 
 
     
 
     browser.getText('@sumTopics', 
 
      function(result){ 
 
       noOfThreadsByInlineCode = result.value; 
 
      } 
 
     ); 
 

 
     noOfThreadsByFunction = getCountOfTopics(browser); 
 

 
     browser.end(); 
 
    } 
 
}

Şimdi, değişken noOfThreadsByInlineCode gerçekten DOM'da değerini alır benim kod parçası olmakla birlikte, değişken noOfThreadsByFunction tanımlanmamıştır. Konsol gerçekten doğru değeri basar, böylece işlev DOM'den doğru değeri alır.

Dönen değeri aldığım için işlevi güncellemede yardımcı olmanızı takdir ediyorum.

+0

tarayıcı.getText yerine this.getText'i deneyebilir misiniz? – anasarbescu

cevap

0

Bunu why.You a Look How to return value from an asynchronous callback function?

function getCountOfTopics(browser){ 
var count; 
browser.getText('@sumTopics', 
    function(result){ 
     count = result.value; 
     console.log(result.value); 
     /// result.value is available in this callback. 
    } 
); 

Ne 'value' ile ne yapmak istiyorsunuz bu konuyu alabilir olduğunu, geri arama dışında 'sayım' değişken döndürür?

ps: custom_command hatırlamıyorum. Bu sorun için çok yararlı olduğunu düşünüyorum.