猿问

js es6 promise 中 resolve 如何传递多个参数?

我期望的效果是


//我希望类似与这样使用,但实际上后面两个参数无法获取

promise = new Promise((resolve,reject)=>{

    let a = 1

    let b = 2

    let c = 3

    resolve(a,b,c) 

})


promise.then((a,b,c)=>{

    console.log(a,b,c)

})


//但实际上这样可以实现

promise2 = new Promise((resolve,reject)=>{

    let a = 1

    let b = 2

    let c = 3

    resolve([a,b,c]) //中括号意味着支持 a.attr1 这样的形式,{}花括号不支持。

})


promise2.then(([a,b,c])=>{

    console.log(a,b,c)

})


虽然上面可以模拟多个参数,但是每次在then的时候都需要添加[]感觉别捏,有更简介的方式吗?


GCT1015
浏览 6304回答 2
2回答

慕田峪9158850

resolve() 只能接受并处理一个参数,多余的参数会被忽略掉。 spec上就是这样规定。用数组wrap一下可以传多个参数,但是resolve出来的结果自然就是个数组了。

慕姐8265434

可以换个思路,把a,b,c数据放在一个对象里面
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答