此代码中扩展函数的目的是什么
What is the purpose of spread function in this code?
我正在尝试弄清楚如何使用mysql-promise。https://www.npmjs.com/package/mysql-promise
下面是一些示例代码;
var db = require('mysql-promise')();
db.configure({
"host": "localhost",
"user": "foo",
"password": "bar",
"database": "db"
});
db.query('UPDATE foo SET key = ?', ['value']).then(function () {
return db.query('SELECT * FROM foo');
}).spread(function (rows) { //what's purpose of spread()?
console.log('Loook at all the foo', rows);
});
点差函数的目的是什么?它到底有什么作用?
Jaromanda X 是正确的,该示例歪曲了spread
。
传播的理想用例是当你的回调/链式函数需要多个参数,但一个承诺返回一个值(我们的工作是确保它是链式函数使用的格式的参数数组),所以:
Promise.resolve([1,2,3]).spread(function(a, b, c){ ...
等效于 ( 在 ES6 中):
Promise.resolve([1,2,3]).then( ([a, b, c]) => { ...
.spread
是一个蓝鸟('mysql-promise正在使用的promise库)函数。
基本上,.spread
允许您处理来自 promise 的返回值,该值是数组而不是单个值。
有关详细信息,请参阅 http://bluebirdjs.com/docs/api/spread.html。
spread 函数来自 mysql-promise 库附带的 Bluebird promise 库。它解开一个必须返回数组的承诺,并将该数组的每个元素提供给传递给它的函数,在本例中为 mysql 数据库中的行。
来自 github 上的 mysql-promise 的 package.json:
"dependencies": {
"bluebird": "^2.10.2",
"mysql": "^2.10.2"
},
以下是蓝鸟项目的更多信息:http://bluebirdjs.com/docs/api/spread.html
相关文章:
- 基于窗口宽度jquery的函数的替代方法是什么
- 未捕获的类型错误:topFrame.window.changeSelectedBarStyle不是函数,原因是什么
- 函数(i,val)在javascript中是什么意思
- 如果 JS 中的函数是一流的,那么在定义它们之前允许调用它们是什么
- 定义js函数时冒号的含义是什么
- 直接在DOM事件处理程序中调用作用域函数的最短方法是什么
- JavaScript中警报函数的替代方法是什么
- JavaScript - 创建可链接函数时的最佳方法是什么
- 使用 WinForms GeckoFX 控件从 C# 调用 JavaScript 函数的推荐方法是什么?
- 返回多个变量的 JavaScript 函数:数组与对象.最佳实践是什么
- 角承诺的“then”函数的成功回调的词汇范围是什么?
- 将同步函数包装到承诺中的最佳方法是什么?
- 箭头函数 '() => {}' 在 Javascript 中是什么意思?
- 在对象中追加或编辑函数的最快方法是什么
- Angular:将对象存储在服务中以在视图中显示和将crud函数存储到服务器的最佳方式是什么
- 在JavaScript中调用array()作为构造函数时,返回的是什么类型的数组
- 究竟是什么(函数()).().
- 在HTML中使用JS的更好方法是什么?函数或选择器
- ES6的语法是什么?函数调用后的冒号
- JavaScript的“对象”是什么?函数