使用getText()的量角分辨率分辨率



我称呼getText((函数,然后尝试解决承诺,但稍后无法获得字符串值。

var textFromElement = someElement.getText().then(function(text){return text})
var splittedText = textFromElement.split(" ")

如何获取文本以供以后使用?

您不了解的是JavaScript编译器如何处理承诺。

这是编译器看您的代码的方式;

var textFromElement = someElement.getText().then(function(text){return text})
var splittedText = textFromElement.split(" ")

1-所有变量均在函数范围的顶部创建,无论您分配的位置如何。

var textFromElement; (= undefined)
var splittedText; (= undefined)

2-是否可以为每行的最小工作量逃脱并移至下一行。

testFromElement = {promise element object};
splittedText = {promise element object}.split(" "); (= undefined)//This what you don't want.

3-从顶部开始,在未解决的线上做更多最小的工作。

testFromElement = {promise getText object};

4-从顶部开始,在未解决的线上做更多最小的工作。

testFromElement = "text text";

简而

很好的例子:

var splittedText;
it("should get split text", function(done) {
  someElement.getText().then(function(textFromElement){
    splittedText = textFromElement.split(" ");
    done();
  })
})

1-所有变量均在函数范围的顶部创建,无论您分配的位置如何。

var splittedText; (= undefined)

2-仅在此功能内完成(DONE DONE((称为

it("should get split text", function(done) {

3-是否可以为每行的最小工作量并移至下一行。

someElement = {promise element object};

4-从功能的顶部开始,并在未解决的线上进行最小的工作。

someElement.getText() = {promise getText object};

5-从功能的顶部开始,并在未解决的线上做更多的最小工作。

textFromElement = "text text";
splittedText = textFromElement.split(" "); (["text","text"]);
done();  //the compiler can now to work outside this function

您的问题是,您将.when((方法的分配分配给您的变量,而不是您作为参数提供的回调。

在所有量角/茉莉花中,所有这些都均具有异步测试的机制。

在这里您有ES6示例。

it('some description', (done) => {
    someElement.getText().then(text => {
        var splittedText = text.split(" ");
        done();
    });
});

和ES5:

it('some description', function(done) => {
    someElement.getText().then(function(text){
        var splittedText = text.split(" ");
    }).finally(done);
});

最新更新