Promise.resolve能接收多个参数吗
发布于 8 年前 作者 im-here 20742 次浏览 来自 问答

Promise.resolve能接收多个参数吗,假如我有如下代码:

 
module.exports = function(p1,p2){   
  Promise.resolve(p1,p2)
		  .then(function(v1,v2){
			  testfun(v1,v2);//测试了下,这里只能拿到第一个参数的值
		  })
  }
}

我测了下,好像只有第一个参数有效,那要是我有多个参数的需求咋办? 传Object吗?

10 回复

对象? 自豪地采用 CNodeJS ionic

@Genffy 有多个参数需求的时候就只能传对象了吗

目前好像promise就只能传一个

@imhered

Promise.resolve([p1, p2])

用数组的形式。

or

Promise.resolve({ p1: p1, p2: p2 })

用对象的形式

bluebird的 spread 可以传多个,对应着 then 用。但是最好不要去使用,一用你就被它绑架了, 想替换的话不太可能

@magicdawn 好的,我看看api

如果考虑es6的话,可以考虑用object传递然后

then((obj)=>{
let {a,b,c} = obj
});

来处理

@iwege 好的,谢谢!

回到顶部