双箭头函数怎么理解?

我在看这个代码的时候,我看到下面的双箭头函数:

const User = require("../models").User

module.exports = (socket, io) => ({ from, friendId }) => {

    Promise.all([
        User.update({_id: from}, {$addToSet: {friends: friendId}}),
        User.update({_id: friendId}, {$addToSet: {friends: from}})
    ])
    .then(() => {
        io.sockets.emit('addFriend', { friendId })
    })
    .catch(err => {
        socket.emit('addFriend', err)
    })
        
}

有点看不懂这个双箭头函数,能够讲解下呢?我指的是单箭头函数可以看懂,但是这个单箭头函数是怎么回事呢?

阅读 4.1k
3 个回答
module.exports = function(socket, io){
    return function({ from, friendId }){
        return {
            Promise.all([
                User.update({_id: from}, {$addToSet: {friends: friendId}}),
                User.update({_id: friendId}, {$addToSet: {friends: from}})
            ])
            .then(() => {
                io.sockets.emit('addFriend', { friendId })
            })
            .catch(err => {
                socket.emit('addFriend', err)
            })
        }
    }
}

导出了一个函数

箭头函数的解释:

             functionName = function(){return result}
                 可以简写为
              functionName = () => result;
              functionName = function (parameter1,parameter2){return result}
              可以简写为
              functionName = (parameter1,parameter2) => result;
              
              function (parameter1){return result};
              可以简写为
              parameter1 => result;
              
              
          

学习ES6语法。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
1 篇内容引用
推荐问题