2016-08-04 31 views
0

私は約束を回避することができませんでした。約束を返す方法

私はこの機能を持っている:

response(theResponse) { 
    return theResponse.json(); 
} 

theReponse.json()は約束を返すコードです。

これは機能し、配列に解決される約束を返します。

しかし、これを変更して配列にアクセスし、配列を処理して約束して返す必要があります。

どうすればよいですか?

+1

引数は関数と同じです。それは私によく見えません。 –

+1

あなたの質問に私は約束がありません。説明するケア? – 4castle

+1

'返信theResponse.json()。then(arr => ...);' – zerkms

答えて

1

を使用して約束のパイプラインを構成することができます。

+0

ありがとう、それは動作します。 –

1

そのjson()メソッドが返すあなたがthen()

response(theResponse) { 
    return theResponse.json().then(function(arr) { 
     //do something with arr 
     return arr; 
    }); // then() returns new promise so it can be chained 
} 

チェック "約束連鎖" hereを使用することができ、その後約束する場合は、Promise#then()

function response(theResponse) { 
    return theResponse.json().then(function(array) { 
    // process array 
    return array; 
    }); 
} 
1

他の回答に追加するだけで、エラーが「飲み込まれない」ように常に約束を守る必要があります。

response(theResponse) { 
    return theResponse 
      .json() 
      .then(arr => arr) // handle resolve 
      .catch(err => err); // handle reject 
}