2016-04-22 5 views
1

私はこの約束を書いているときに私が間違っていることを教えてもらえますか?計算の最初の関数を実行し、計算が完了した後にコンポーネントのsetStateを実行します。プロミスを書くときにエラーが発生する:プロミスリゾルバオブジェクトが関数ではありません

var calculate = new Promise({ 

      function(resolve, reject) { 
       var newSubtotal = 0; 
       var newTotal = 0; 

       this.props.cart.map((product)=>{ 

        newSubtotal += product.price; 
        newTotal += product.price; 
        newTotal *= 1.10; 

       }); 
       resolve(newSubtotal, newTotal); 
      } 
     }); 

     calculate.then(() => { 
      this.setState({ 
       subtotal: newSubtotal, 
       total: newTotal 
      }); 
     }); 

答えて

3

オブジェクトが、関数が

期待されている、あなたが渡しているので、それはあなたのコードでは、この

var calculate = new Promise(function(resolve, reject){ 
// some stuff 
}) 
1

のようなもの

calculate.then(() => { 
     this.setState({ 
      subtotal: newSubtotal, 
      total: newTotal 
     }); 
    }); 

する必要がありますがnewSubtotal、newTotalへのアクセス何を持っていません。

どのようですか?

また
calculate.then((newSubtotal, newTotal) => { 
     this.setState({ 
      subtotal: newSubtotal, 
      total: newTotal 
     }); 
    }); 

、追加:reject(someFailCase);

関連する問題