此代码中扩散函数的用途是什么?

时间:2016-02-23 07:46:11

标签: javascript mysql node.js promise node-mysql

我想弄清楚如何使用mysql-promise。 https://www.npmjs.com/package/mysql-promise

以下是一些示例代码;

document_end

传播功能的目的是什么?它到底是做什么的?

3 个答案:

答案 0 :(得分:3)

Jaromanda X是正确的,该示例误传了spread

传播的理想用例是当你的回调/链接函数需要多个参数,但是一个promise返回一个值(我们的工作是为了确保它是由链式函数使用的格式的参数数组),所以:

Promise.resolve([1,2,3]).spread(function(a, b, c){  ...

相当于(在ES6中):

Promise.resolve([1,2,3]).then( ([a, b, c]) => {  ...

答案 1 :(得分:2)

.spread是一个Bluebird(mysql-promise正在使用的promise库)函数。

基本上,.spread允许您处理作为数组而不是单个值的promise的返回值。

有关详细信息,请参阅http://bluebirdjs.com/docs/api/spread.html

答案 2 :(得分:1)

spread函数来自mysql-promise库附带的Bluebird promises库。它解包了一个必须返回数组的promise,并将该数组的每个元素赋予传递给它的函数,在本例中是mysql数据库中的行。

来自github上的mysql-promise的package.json:

 "dependencies": {
    "bluebird": "^2.10.2",
    "mysql": "^2.10.2"
  },

以下是蓝鸟项目的更多信息: http://bluebirdjs.com/docs/api/spread.html