我正在观看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
但是为什么呢?
答案 0 :(得分:1)
之所以这样工作是因为Promise.all
的定义是这样工作的。它会返回一个新的Promise,并且将使用一个数组来实现该Promise,该数组包含要实现的Promise输入数组的所有值。
您可以在MDN上详细了解它。
答案 1 :(得分:0)
当函数只有一个参数时,可以在使用箭头函数时省略括号。
所以
.then(消息=> {})
等于
.then((messages)=> {})