请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于使用Promise的执行sql的函数

也就是下面的代码:

//统一执行sql的函数
function exec(sql){

	const promise = new Promise((resolve,reject) => {

		con.query(sql,(err,result) => {

			if(err){
				reject(err)
				return
			}
			resolve(result)
		})

	})
	return promise

}

为什么要用Promise,我们用一个return也可以将值返回吧,Promise有什么更好之处吗?

con.query(sql,(err,result) => {
	if(err){
		console.log(err)
		return
	}
	return result
})

正在回答 回答被采纳积分+3

1回答

双越 2019-07-31 08:58:36

使用 Promise 封装,可以让调用者直接用 .then 进行链式调用,或者直接用 await 调用。

你所说的直接 return 返回,那就只能用回调函数,可能会导致嵌套层级过多。

0 回复 有任何疑惑可以回复我~
  • 提问者 朱青1900 #1
    return result返回的不是sql查询后的结果吗?
    回复 有任何疑惑可以回复我~ 2019-07-31 09:07:00
  • 双越 回复 提问者 朱青1900 #2
    result 是执行 sql 的结果。
    回复 有任何疑惑可以回复我~ 2019-07-31 13:42:09
  • 提问者 朱青1900 回复 双越 #3
    对,我们需要的不就是执行sql的结果,不好意思老师,因为感觉Promise这里面一层层,感觉还不如直接返回执行结果更加便捷
    回复 有任何疑惑可以回复我~ 2019-07-31 15:54:42
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信