2015-02-17 3 views
3

Я хотел бы добиться следующим:Сравнивая значения двух обещаний

var textPromise1 = element(by.id('id1')).getText(); 
var textPromise2 = element(by.id('id2')).getText(); 

if(textPromise1.SOMELOGIC == textPromise2.SOMELOGIC) 
console.log('These are equal') 

Я знаю, что обещание будет решено с помощью .then(). Тем не менее, я хочу знать, существует ли какой-то способ, с помощью которого выше может быть достигнуто!

Спасибо,

ответ

3

Вы должны решить обещания для обоих текстов. Лучше всего использовать expect и позволить ожиданию решить обещание для вас. Вот как я решил эту проблему для себя:

textPromise1.then(function(data){ 
    //here you can call an external function that will apply some logic to your data string 
    var string1= data.someLogicFunction1();//or perform whatever operations are required on data 
    expect(someLogicFunction2(textPromise2)).toBe(string1); 

}) 
+0

Hi Rahul, Спасибо за ответ. Я уже знаю этот подход (как упоминалось в сообщении). Ожидание даст присутствие в моем файле результатов. Однако все, чего я хочу достичь, это условие IF-ELSE. Есть ли другой лучший способ сравнения? –

+0

Что вам нужно будет сделать, так это решить обещание и сохранить это значение в глобальной переменной. 'textPromise1.then (функция (данные) { global.var1 = данные })' Затем используйте global.var1 по мере необходимости. –

+1

Этого не бывает! Я пытался. Var1 не выходит из блока .then() до n, если мы не вернем его! И если мы вернем его, тогда это также станет обещанием, которое затем снова нужно решить, используя. Then и, таким образом, снова повторит ту же проблему! –

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