在Promise中执行'fn.apply(null,arguments)'时无法得到我应该得到的东西

时间:2017-11-28 22:47:38

标签: javascript promise arguments apply

这是功能代码:

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中尝试过。我错过了什么吗? 感谢

1 个答案:

答案 0 :(得分:1)

承诺只能使用单个值来解析,并且只使用一个参数调用then回调。将多个内容传递到resolvereject是毫无意义的。如果您需要所有这些,请将它们作为元组值传递,作为数组的元素。