2016-02-09 4 views
1

Еще довольно новый для Транспортировщик. Я пытаюсь установить текст переменной, но возвращает пустую строку. Пояснения и исправления приветствуются!Транспортир: установочные переменные

Я попробовал отладку, добавив «listname» для печати на консоль. Он отлично работает, но текст не выводится на консоль.

var listname = ""; 

selectList() 
    .first() 
    .element(by.css('.listname')) 
    .getText() 
    .then(function(text) { 
     listname = text; 
     console.log(listname); 
    }); 

console.log("listname " + listname); 

Из моего понимания, я знаю, что это должно быть асинхронными, но я думал, что обещание выполнено в .then. После этого я смогу получить текст.

Выход возвращение:

listname 

List1 

В то время как я ожидал:

List1 

listname List1 
+0

'.then()' устанавливает * обратного вызова * для того, когда асинхронный код выполняется. Он не выполняет/не разрешает обещание. –

ответ

0

Это асинхронный, так что это не обязательно первый console.log будет проходит до второй console log.

1

Если это была блокировка console.log, тогда она не была бы асинхронной. console.log получает выполненный до ваше обещание разрешено. Поэтому ниже сначала печатается.

listname 

List1 

Проверьте фантастический ответ here

Смежные вопросы