2017-02-28 3 views
0

FirebaseとAngularfire2を使用して、私のプロジェクトをIonic2でビルドしています。 方法で私は複数の約束を返すのを待っています。だから私は次のapprochを使用しています。Angularfire2のPromiseの動的数

deleteAll(param: string[]) { 
    return Promise.all([ 
    this.storage.remove(param[0]), 
    this.storage.remove(param[1]), 
    this.storage.remove(param[2]) 
    ]); 

私の場合、パラメータアレイの値の数は固定されていません。もし私が側のメソッドのループを使用しようとするとPromise.allその貫通エラー。 このシナリオを解決するのを手伝ってください。

+1

をそれを渡すためにmapを使用することができますし、あなたのコードはありますか?そしてエラーは?文字列の配列をpromiseの配列に変換し、その配列をPromise.all()に渡すだけで済みます。 JavaScript配列にはmap()メソッドがあるため、ループを作成する必要はありません。 –

答えて

2

あなただけの約束の配列に文字列配列を変換し、その後Promise.all

let promises = param.map(x => this.storage.remove(x)); 
return Promise.all(promises); 
+0

それはうまく動作します。どうもありがとう。 –

+0

私はインターネットを検索していましたが、マップ機能が実際に行っていることについて適切な説明が見つかりませんでした。あなたはちょうど私に短いことを教えてくださいまたは任意のリンクを提供してください。 –

+0

googleで 'javascript map'と入力すると、最初の結果ではっきりと説明できます.... https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/map 地図()メソッドは、この配列のすべての要素に提供された関数を呼び出した結果で新しい配列を作成します。 –

関連する問題