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

来源:6-5 nodejs 链接 mysql 做成工具

朱青1900

2019-07-30

也就是下面的代码:

//统一执行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
})
写回答

1回答

双越

2019-07-31

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

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

0
4
小李今天学了吗
回复
朱青1900
在调用exce函数时,需要保证拿到结果,不用promise,就需要传个callback函数进来接收数据;因在执行exce时,query可能还没执行完,是个异步的
2022-10-01
共4条回复

Node.js+Express+Koa2+Nest.js 开发服务端

从入门到实战,一站式掌握 Node.js+Express+Koa2

4051 学习 · 2006 问题

查看课程