这是功能代码:
let fn = function() { console.log(arguments) }
let fn2 = function() { fn.apply(null, arguments) }
所以在致电fn2(1,'t',4)
后Arguments { 0: 1, 1: "t", 2: 4, … }
。
但是这段代码:
let def = { }
let p = new Promise((s,f)=>{
def.s = function() { s.apply(null, arguments) }
def.f = function() { f.apply(null, arguments) }
})
p.then(function(){
console.log(arguments)
})
在致电def.s(1,'T',2)
此Arguments { 0: 1, … }
后回复。
在Chrome和Firefox中尝试过。我错过了什么吗? 感谢
答案 0 :(得分:1)
承诺只能使用单个值来解析,并且只使用一个参数调用then
回调。将多个内容传递到resolve
或reject
是毫无意义的。如果您需要所有这些,请将它们作为元组值传递,作为数组的元素。