为什么箭头函数中的参数会这样传递?

时间:2019-10-20 01:23:05

标签: javascript node.js

我正在观看YouTube视频,该视频谈论JavaScript中的承诺,并遇到了一些我不太了解的代码:

const recordVideoOne = new Promise((resolve, reject) => {
  resolve('Video 1 Recorded')
})

const recordVideoTwo = new Promise((resolve, reject) => {
  resolve('Video 2 Recorded')
})

const recordVideoThree = new Promise((resolve, reject) => {
  resolve('Video 3 Recorded')
})

Promise.all([
  recordVideoOne,
  recordVideoTwo,
  recordVideoThree
]).then(messages => {
  console.log(messages)
})

我想知道.then (messages => { console.log (messages)})为什么可以在控制台中显示“已录制视频1”,“已录制视频2”,“已录制视频3”。为什么代码会在resolve()中捕获单词“ message”作为短语。例如:感觉这里消息=已录制视频1 但是为什么呢?

2 个答案:

答案 0 :(得分:1)

之所以这样工作是因为Promise.all的定义是这样工作的。它会返回一个新的Promise,并且将使用一个数组来实现该Promise,该数组包含要实现的Promise输入数组的所有值。

您可以在MDN上详细了解它。

答案 1 :(得分:0)

当函数只有一个参数时,可以在使用箭头函数时省略括号。

所以

  

.then(消息=> {})

等于

  

.then((messages)=> {})