Javascript 量角器元件所有过滤器均损坏

Javascript 量角器元件所有过滤器均损坏,javascript,asynchronous,promise,protractor,Javascript,Asynchronous,Promise,Protractor,我有以下功能: var getUserInList = function(email){ console.log('getUserInList email:'+email); element.all(by.repeater('user in users')).filter(function(el, index){ console.log('index:'+index); return el.element(by.binding('user.email')).getText().t

我有以下功能:

var getUserInList = function(email){
console.log('getUserInList email:'+email);
element.all(by.repeater('user in users')).filter(function(el, index){
    console.log('index:'+index);
    return el.element(by.binding('user.email')).getText().then(function(text){
        console.log('text:'+text+' email:'+email);
        return text === email;
    });
  }).then(function(els){
    console.log('els length'+els.length+'els[0]'+els[0]);
    if(els.length === 0)return null;
    return els[0];
  });
};
在第一次调用时,它向控制台提供以下输出:

.getUserInList email:test2@test.com
end create
index:0
index:1
index:2
text:test2@test.com email:test2@test.com
text:test@test.com email:test2@test.com
text:rory.gilfillan@gmail.com email:test2@test.com
els length1els[0][object Object]
index:0
index:1
index:2
text:test2@test.com email:test2@test.com
text:test@test.com email:test2@test.com
text:rory.gilfillan@gmail.com email:test2@test.com
index:0
index:1
index:2
text:test2@test.com email:test2@test.com
text:test@test.com email:test2@test.com
text:rory.gilfillan@gmail.com email:test2@test.com
.start delete
getUserInList email:test3@test.com
令人惊讶的是,尽管该函数假定在控制台的第9行返回一个值,但该函数仍在继续运行。然后,当再次调用该函数时,它只返回未定义的,不返回任何承诺。函数的第一个控制台输出在那里,但之后什么都没有。这对我来说毫无意义

element.all(by.repeater('user in users')).filter(function(el, index){
应该是

return element.all(by.repeater('user in users')).filter(function(el, index){
链接到文档-