javascript - 在 Promise-mysql 的 createConnection 中使用异步函数会改变加载速度吗?

标签 javascript mysql reactjs express ecmascript-6

我需要知道使用异步createConnection是否更好

这会改变加载速度吗?

我正在使用express、ReactJS、promise-mysql

我应该使用什么?

这个:

    async connect ()  {
            try{
                const conn = await db.createConnection(this.config);
                this.conn = conn;
            } catch(error){
                console.log(error)
            }   
        }

或者这个

      connect ()  {
            return db.createConnection(this.config).then(conn => {
                this.conn = conn
            })
        }

最佳答案

嗯,您的两个示例中的错误处理完全不同。首先,您记录错误并允许解决返回的 promise 。在第二种情况下,连接错误将拒绝返回的 promise 。所以,这是一个主要的结构差异。

如果您将第一个更改为:

async connect ()  {
    this.conn = await db.createConnection(this.config);
}

然后,这在结构上与第二个示例相同:

connect ()  {
    return db.createConnection(this.config).then(conn => {
        this.conn = conn;
    });
}

现在,如果您比较这两个,它们会产生相同的结果(除了在边缘情况下,db.createConnection() 会同步抛出,但希望不会这样做)。

因此,如果您根据这两个具有相同结果的问题重新提出问题,答案是这并没有真正产生什么区别。

如果执行速度存在可测量的差异,那么差异将非常小,以至于不太可能有意义,并且无论存在什么差异,都仅取决于特定的 JS 引擎实现,并且随着 JS 引擎的成熟,可能不会恒定.

所以,这实际上只是编码风格和您喜欢的问题。 await 版本需要更少的打字和更少的代码行(通常都是如此)。我个人倾向于不使用 async/await ,除非我有多个异步操作要尝试排序,但这可能只是使用 .then() 编码的一些惯性。 code> 在 await 出现之前有一段时间。

关于javascript - 在 Promise-mysql 的 createConnection 中使用异步函数会改变加载速度吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58825228/

相关文章:

javascript - 制作用户访问弹出窗口

javascript - immutable.js .set 上的回调

php - 内存/优化问题

reactjs - 为什么对象文字 `{a}` 的 TypeScript 断言适用于接口(interface) `{a, b}` 而不是 `{a?, b}`

JavaScript - 获取满足第一个条件的值

php - 您的 SQL 语法有错误;检查与您的 MySQL 服务器等相对应的手册

php - 是否可以反向查表快速获取最新数据?

javascript - React-router-dom 显示空白屏幕

reactjs - React + Redux - 为什么不连接所有组件?

javascript - ajax如何在动态生成的div中工作