2017-03-07 25 views
0

関数内でFetch promiseを実行して、他の誰かがこのデータを処理する前にデータを変換する必要があります。 は、だから私は(ちょうど考えを示すように簡略化)このコードを作成しました:これを行うには、他の方法があります1 2が、それは2 1を示す保持:関数からの約束実行の順序

それを実行
function test() { 

    return new Promise(function (resolve, reject) { 
    // Fetch('www.google.com') 
    setTimeout(resolve, 1000); 
    }).then(function() { 
    // convert data, etc 
    console.log(1); 
    }); 
} 
// after conversion, handle it to someone else 
test().then(console.log(2)); 

、私は、コンソールが表示さだろうと思いましたか?

+0

'.then()' a *関数*を渡す必要があります。 'test()。then(function(){console.log(2)});' –

答えて

1

console.log(1)と同じように、thenコールバックとして渡す前に、関数内で2番目の呼び出しをラップする必要があります。予想通り

test().then(function() { 
    console.log(2); 
}); 

そして、それは12が表示されます。

+0

ありがとう、狂気の詳細... – MarcosCunhaLima