【问题标题】:Cant understand how return works in async function无法理解 return 如何在异步函数中工作
【发布时间】:2021-04-11 17:06:36
【问题描述】:

应用逻辑有问题。 所以我有登录功能

 async login() {
        debug('USERNAME: ', ITEM.USERNAME, 'PASSWORD: ', ITEM.PASSWORD);
        API.state.proxyUrl = genProxyString();
        debug('Proxy: ', API.state.proxyUrl);

        try {
            debug('Login');
            await API.execute(AccountLoginCommand, {
                username: ITEM.USERNAME,
                password: ITEM.PASSWORD,
            });
            ITEM.USER = await API.account.currentUser();
            debug(ITEM.USER);
            return ITEM.USER;
        } catch (e) {
          console.error(e);
        }
}

用法

(async () => {
    await login();
    await doStuff();
})();

doStuff() 函数在 login() 之后不会发生,但 ITEM.USER 输出到控制台。

【问题讨论】:

  • doStuff功能代码添加到问题中可能会有所帮助。
  • doStuff() 只是控制台日志“它有效”
  • 根据您发布的内容,它似乎应该可以工作。您能否尝试使用executable snippet 来获取一个复制您的错误的示例,以便我们更好地调试它?
  • 我不知道为什么,但它开始起作用了

标签: javascript node.js function async-await return


【解决方案1】:

如果ITEM.USER 返回,则表示 async/await 工作正常。但是,您应该确保在 doStuff() 函数中返回了一些内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-31
    • 1970-01-01
    • 2020-11-08
    • 2021-11-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多