在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

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

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

我期望的效果是

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

//但實(shí)際上這樣可以實(shí)現(xiàn)
promise2 = new Promise((resolve,reject)=>{
    let a = 1
    let b = 2
    let c = 3
    resolve([a,b,c]) //中括號(hào)意味著支持 a.attr1 這樣的形式,{}花括號(hào)不支持。
})

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

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

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

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

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

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

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

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

2017年11月6日 11:23