CNode

Promise.resolve能接收多个参数吗

问答
Iim-here发布于10 年前最后回复10 年前10 回复21823 浏览0 收藏

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

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

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

查看回复

回复 (10)

对象? 自豪地采用 CNodeJS ionic

I
im-here#2·10 年前
引用 Genffy__legacy_55321c011b9662da568db8bb对象? 自豪地采用 CNodeJS ionic

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

R
reverland#3·10 年前

目前好像promise就只能传一个

M
magicdawn#4·10 年前
引用 im-here@Genffy 有多个参数需求的时候就只能传对象了吗

@imhered

Promise.resolve([p1, p2])

用数组的形式。

or

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

用对象的形式

I
im-here#5·10 年前
M
magicdawn#7·10 年前

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

I
iwege#9·10 年前

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

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

来处理

参与回复
登录后即可参与回复。登录