js mysql 返回值,使用Promise处理Node.js中的MySQL返回值

小编典典

这会有点分散,请原谅我。

首先,假设此代码正确使用了mysql驱动程序API,这是将其包装为与本机promise一起使用的一种方法:

function getLastRecord(name)

{

return new Promise(function(resolve, reject) {

// The Promise constructor should catch any errors thrown on

// this tick. Alternately, try/catch and reject(err) on catch.

var connection = getMySQL_connection();

var query_str =

"SELECT name, " +

"FROM records " +

"WHERE (name = ?) " +

"LIMIT 1 ";

var query_var = [name];

connection.query(query_str, query_var, function (err, rows, fields) {

// Call reject on error states,

// call resolve with results

if (err) {

return reject(err);

}

resolve(rows);

});

});

}

getLastRecord('name_record').then(function(rows) {

// now you have your rows, you can see if there are <20 of them

}).catch((err) => setImmediate(() => { throw err; })); // Throw async to escape the promise chain

所以一件事:您仍然有回调。回调只是函数,您可以使用将来选择的参数将其传递给将来的某个点。因此,中的函数参数xs.map(fn),(err,

result)在node中看到的函数以及promise结果和错误处理程序都是回调。人们将一种特定的回调称为“回调”,这在某种程度上使人感到困惑,这种回调(err,

result)在节点核心中以“连续传递样式”的形式使用,有时被不喜欢它们的人称为“ nodebacks”。

到目前为止,至少(异步/等待最终会出现),无论是否采用Promise,您都几乎陷入了回调。

另外,我会注意到,promise不会立即生效,显然在这里很有用,因为您仍有回调。当您将它们与Promise.all并保证累加器相结合时,承诺才真正闪耀Array.prototype.reduce。但他们

做的 光泽有时,他们 是 值得学习的。

2020-05-17

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值