2017-11-28 5 views
0

に「fn.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で試用しました。何か不足していますか? ありがとう

+0

出力には「...」とは何ですか? – Bergi

+1

promiseのresolve関数は単一の引数を取るので、 '' T ''と '2'は意味がありません。 –

+0

' ... 'の下に隠された関数と引数オブジェクトの他のプロパティがあります。たとえば、Firefoxでそれをチェックしてください。 – domino

答えて

1

約束は単一の値でしか解決できず、thenというコールバックがちょうど1つの引数で呼び出されます。 resolveまたはrejectに複数のものを渡すことは無意味です。それらのすべてが必要な場合は、配列の要素としてタプル値として渡します。

+0

私はそれを逃すことができたよ、ありがとう! :) – domino

関連する問題