无法从打字稿中的异步方法返回值

时间:2020-06-23 19:33:41

标签: typescript async-await protractor

我正在处理打字稿。我正在尝试从async方法返回一个值。但是,它总是返回{}。下面是我编写的代码。

    async returnNewUrlAfterClickingLink(): Promise<string> {
    const allHandles = await browser.getAllWindowHandles();
    await browser.switchTo().window(allHandles[2]);
    const cur_url = await browser.getCurrentUrl();
    console.log("url is" + cur_url);
    return cur_url;
}

但是我能够正确记录网址。

1 个答案:

答案 0 :(得分:1)

您的returnNewUrlAfterClickingLink被标记为异步,因此它现在总是返回promise。为了获得该值,您需要await的函数结果:

const url = await returnNewUrlAfterClickingLink()
console.log(url)

再次-要使用await,必须将函数设置为异步,因此整个调用堆栈必须为async / await。

希望这会有所帮助