Angular 量角器可以';无法从executescript获取值。它返回一个承诺
在量角器中,我有这个Angular 量角器可以';无法从executescript获取值。它返回一个承诺,angular,typescript,protractor,Angular,Typescript,Protractor,在量角器中,我有这个 function getText(): string { return browser.executeScript(`return 'some text';`); } 第一个返回一个承诺,我不知道如何从承诺中获得价值 然后我试着去做 function getText(): string { browser.executeScript(`return 'some text';`).then(function(result) { return
function getText(): string {
return browser.executeScript(`return 'some text';`);
}
第一个返回一个承诺,我不知道如何从承诺中获得价值
然后我试着去做
function getText(): string {
browser.executeScript(`return 'some text';`).then(function(result) {
return result;
});
第二个的问题是,我找不到一种方法使它异步。它仅在我的所有代码执行完毕时返回
我努力实现的目标是:
let text = getText();
希望有人能帮我,因为我找不到这个问题的有效答案
编辑:
我找不到一种方法将它放在函数外的变量中。我目前的解决办法是:
browser.executeScript(`return 'some text';`).then(function(result) {
console.log(result);
//do your stuff here with the variable.
});
//can't find out how to use it outside the then function as other code runs first. But for now, that way works.
您可以使用
async。。。等待
履行承诺的机制:
async function getText(): Promise<string> {
const text = browser.executeScript(`return 'some text';`);
return text;
});
...
...
let text = await getText();
不能将异步调用转换为同步调用。只需返回一个承诺,并让方法的调用方处理返回的承诺。第二个示例似乎没有在browser.executeScript之前返回
return
。因此,函数应该返回executeScript返回的任何内容。否则它将始终是未定义的,不起作用@Sergey PleshakovI'm get Type“{}”不可分配给Type“string”。以及预期的声明或声明。你测试过自己的代码吗?
let text = getText();