मैंने अंगुलर 2 का उपयोग करके अपने घटकों के साथ एक अजीब व्यवहार देखा है। मेरे घटक मेरे प्रदाताओं के रूप में मॉडल को बदलने के बाद मेरे विचारों को अद्यतन करने में कुछ सेकंड लगते हैं। भले ही एपीआई का डेटा एक ही डेटा है।देखने के लिए कोणीय 2 देरी
उदाहरण के लिए:
मैं अपने प्रदाता मॉडल UserModel बुलाया मेरी घटक के अंदर मैं एपीआई से डेटा प्राप्त करें और फिर इस मॉडल है जो मेरे विचार के अंदर भी है अद्यतन के रूप में की है। सर्वर से प्रतिक्रिया प्राप्त करने के बाद, मेरे दृश्य को अपडेट करने में अभी भी कुछ सेकंड लगते हैं, और कभी-कभी यह अपडेट नहीं होता है, बस उसी पृष्ठ पर किसी भी टेक्स्ट नियंत्रक पर क्लिक करने के बाद और फिर कोई भी टेक्स्ट फोकस करने के बाद मेरा दृश्य अपडेट किया जाता है।
क्या किसी ने इसे पहले ही देखा है? मुझ से ऐसी कौनसी गलती हो जाएगी ?
कार्ड घटक
public createCard(model:CardModel):Promise<any>{
var context = this;
return new Promise((resolve, reject) => {
this.stripe.createToken(model)
.then(function(token){
model.token = token;
context.saveCard("./card", model, true)
.then(data => resolve(data))
.catch(error => reject(error));
})
.catch(error => reject(error));
});
धारी सेवा
public createToken(model:CardModel):Promise<any>{
//I get callback and convert return it as promise
return new Promise((resolve, reject) => {
//this function is the one from stripe.js, it is not promise
this.stripe.card.createToken(model, function(status, response){
if(status == 200){
resolve(response.id);
}else{
reject(response.error.message);
}
});
});
}
इसे वापस करने के लिए वादा करने के लिए आप समारोह createToken कॉलबैक के रूप में देता है, क्योंकि यह एक Strip.js समारोह है नोटिस, और फिर मैं कन्वर्ट हैं बनाने के लिए कार्ड। लेकिन एक बार सभी कार्य पूरा हो जाने पर मेरा क्षेत्र बदल नहीं जाता है। अगर मैं इसे हटा देता हूं .stripe.card.create टोकन और टाइमआउट का उपयोग करके एक सरल संकल्प() वापस लौटाता है, तो यह ठीक काम करता है। तो मेरा मानना है कि यह मुद्दा तब होता है जब एक एसिंक फ़ंक्शन एक वादा के अंदर कॉलबैक लौटाता है। लेकिन मुझे कोई संकेत नहीं है कि इससे कैसे निपटें।
यह आमतौर पर है कि नहीं कर रहे हैं कॉलबैक के साथ कुछ एपीआई। एंगुलरस जोन द्वारा पैच किया जा सकता है। इस मामले में कोणीय को पता नहीं है कि इसे बदलने का पता लगाने की जरूरत है। मुझे कुछ कोड देखना होगा। –
मैंने कुछ कोड जोड़ने के सवाल को अद्यतन किया है – Angular2
'वादा' कुछ पॉलीफिल पर निर्भर हो सकता है लोडिंग ऑर्डर। यदि आप अवलोकन का उपयोग करते हैं तो इसे निश्चित रूप से काम करना चाहिए। इसके अलावा कुछ भी नहीं है supsicious। –