Javascript承诺不等待异步函数完成

时间:2017-10-12 18:20:11

标签: javascript selenium promise

我有一个函数打开一个selenium webdriver实例,然后是另一个函数,它将获取一些信息,然后将webdriver导航到一个URl。我使用了一个承诺,因为我被引导相信第二个函数会在执行第二个函数之前等待第一个函数完成。这是我的参考代码:

function function1(){
  let driver = new Builder()
  .forBrowser('firefox')
  .build();
    driver.get(url);

  return new Promise((resolve, reject)=>{
    resolve('Browser Opened')
  })

 }

function function2(){
  ** code to create URL **
  driver.get(urlCreated);
}

function1().then(function2);

所以这是代码,我期待功能2等到功能1在执行之前完成然而事实并非如此,我是否误解了承诺?有人能指出我正确的方向吗?提前致谢

2 个答案:

答案 0 :(得分:2)

driver不是return

function1
function function1() {
  return new Promise((resolve, reject)=>{
    let driver = new Builder()
    .forBrowser('firefox')
    .build();
    driver.get(url);
    resolve(driver);
  })
}

function function2(driver) {
  driver.get(urlCreated);
}

function1().then(function2);

答案 1 :(得分:0)

您在function1

上错过了结束}
function function1(){
  let driver = new Builder()
  .forBrowser('firefox')
  .build();
    driver.get(url);

  return new Promise((resolve, reject)=>{
    resolve('Browser Opened')
  })
}

function function2(){
  ** code to create URL **
  driver.get(urlCreated);
}

function1().then(function2);