私は、約束のデータと簡単な数学の値の組み合わせであるデータを持つ関数を持っています。ここでは機能があります:AngularJS:約束のデータと約束していないデータを持つ関数
_getTotalPrice = function() {
var price = 0;
// Simple Math data.
// Calculate price for channels first.
price = price + (num_channels - 5)*(4);
var themepacks = cart.themepacks;
if(themepacks) {
angular.forEach(themepacks, function(pack, index) {
// data coming from a service
channelFactory.getThemePack(pack).then(function(result) {
price = price + Number(result.packPriceAmt);
console.log("price", price);
});
});
}
console.log(" Total price", price);
return price;
};
ページのロード時に、Total price
とprice
の値が異なっています。約束が解決された後にprice
が読み込まれたためです。値を返す前に約束が解決されるまで私はどのように待つことができますか?私はこの機能の中で別の約束を作りますか?
あなたは$ qを見ていたしましたか? http://www.codeducky.org/q-serial/または他の例を参照してください。 – Naveen
関数内で値を返すことはできません。それは 'return'とともに返されるか、' undefined'が暗黙的な返り値として返されます。値を返す約束を返します。 – estus