鍍金池/ 問答/HTML/ js es6 promise 中 resolve 如何傳遞多個參數(shù)?

js es6 promise 中 resolve 如何傳遞多個參數(shù)?

我期望的效果是

//我希望類似與這樣使用,但實際上后面兩個參數(shù)無法獲取
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)
})

//但實際上這樣可以實現(xiàn)
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)
})

雖然上面可以模擬多個參數(shù),但是每次在then的時候都需要添加[]感覺別捏,有更簡介的方式嗎?
回答
編輯回答
瘋子范

resolve() 只能接受并處理一個參數(shù),多余的參數(shù)會被忽略掉。 spec上就是這樣規(guī)定。

用數(shù)組wrap一下可以傳多個參數(shù),但是resolve出來的結(jié)果自然就是個數(shù)組了。

2018年4月1日 00:07
編輯回答
獨特范

可以換個思路,把a,b,c數(shù)據(jù)放在一個對象里面

2017年12月2日 04:19
編輯回答
莫小染

可能是為了與之后的async/await考慮,所以才限制只能返回一個值。
應(yīng)該可以自己包裝一個類實現(xiàn)類似功能吧

2017年11月6日 11:23