अधिकतम कॉल स्टैक आकार त्रुटि से अधिक हो गया


533

मैं एक डायरेक्ट वेब रीमोटिंग (DWR) जावास्क्रिप्ट लाइब्रेरी फ़ाइल का उपयोग कर रहा हूँ और केवल सफ़ारी (डेस्कटॉप और iPad) में त्रुटि हो रही है

इसे कहते हैं

अधिकतम कॉल स्टैक आकार से अधिक।

वास्तव में इस त्रुटि का क्या मतलब है और क्या यह पूरी तरह से प्रसंस्करण बंद कर देता है?

Safariब्राउज़र के लिए भी कोई फिक्स (वास्तव में iPad Safari, यह कहता है)

जेएस: निष्पादन समय समाप्त हो गया

जो मैं मान रहा हूँ वही कॉल स्टैक समस्या है)


2
मुझे यह त्रुटि तब मिली जब dataअजाक्स के माध्यम से चर (उन्हें घोषित किए बिना) भेजने की कोशिश की गई । चर घोषित करके त्रुटि को ठीक किया।
phpfresher

जवाबों:


621

इसका मतलब है कि आपके कोड में, आप एक फ़ंक्शन को कॉल कर रहे हैं जो बदले में किसी अन्य फ़ंक्शन को कॉल करता है, और जब तक आप कॉल स्टैक सीमा को हिट नहीं करते हैं।

यह लगभग हमेशा एक आधार मामले के साथ एक पुनरावर्ती कार्य के कारण होता है जो पूरा नहीं किया जा रहा है।

ढेर देखना

इस कोड पर विचार करें ...

(function a() {
    a();
})();

यहाँ मुट्ठी भर कॉल के बाद है ...

Web Inspector

जैसा कि आप देख सकते हैं, कॉल स्टैक तब तक बढ़ता है जब तक कि यह एक सीमा तक हिट न हो जाए: ब्राउज़र हार्डकॉक्ड स्टैक आकार या मेमोरी थकावट।

इसे ठीक करने के लिए, यह सुनिश्चित करें कि आपके पुनरावर्ती कार्य में एक आधार मामला है जो मिलने में सक्षम है ...

(function a(x) {
    // The following condition 
    // is the base case.
    if ( ! x) {
        return;
    }
    a(--x);
})(10);

6
उसके लिए बहुत कुछ। कोई ऐसा तरीका / टूल है जिसके द्वारा मैं कर सकता हूं कि स्टैक सीमा समाप्त हो रही है..आगे, क्योंकि यह एक बहुत बड़ी लाइब्रेरी फ़ाइल है और मेरे द्वारा नहीं बनाई गई है, मुझे पूरी तरह से पता नहीं है कि मैं कहाँ हूँ बातें गलत हो सकती हैं ..
testndtv

52
@ ओलिवर यदि आपको लगभग 300 ट्रिलियन बार फंक्शन चलाना है, तो आप शायद कुछ गलत कर रहे हैं।
ceejayoz

3
@ ओलिवर - आप गतिशील प्रोग्रामिंग में देखना चाहते हैं - मेरा अनुमान है कि आपके पास कई अद्वितीय समाधान नहीं हैं, आप कदम दोहरा रहे हैं, इसलिए आपको इसे द्विघात के बजाय बहुपद समय होने के लिए प्रोग्राम करने की आवश्यकता हो सकती है। en.wikipedia.org/wiki/Dynamic_programming
newshorts

4
@Akhoy एक नियमित फ़ंक्शन में हाँ, लेकिन पुनरावर्ती फ़ंक्शन के बारे में सोचें। यह एक और (स्वयं) को कॉल करता है और स्टैक पर पूर्व का रिटर्न पता छोड़ता है (अन्यथा पीसी को पता नहीं होगा कि कहां जाना है?) बेशक यह खुद को फिर से कॉल करता है, हर बार स्टैक पर रिटर्न एड्रेस को पुश करता है। जब यह बेस केस के कारण भाग जाता है जो अगली शताब्दी में मिलने की संभावना नहीं है, तो आपको स्टैक ओवरफ्लो मिलता है।
एलेक्स

5
आपका कोड वही अक्षम अनुभाग 134217728 बार चलाता है। कोई धीमी गति से मजाक कर रहा है। आपको बिटवाइज़ ऑपरेटरों का उपयोग करना चाहिए ताकि आप लूप के 9 स्तरों को लूप के एक स्तर में अनियंत्रित कर सकें।
जैक गिफिन

82

आप कभी-कभी इसे प्राप्त कर सकते हैं यदि आप गलती से इंसपेक्टर के अपने संसाधन टैब में जाँच के लायक एक ही जावास्क्रिप्ट फ़ाइल को दो बार आयात / एम्बेड करते हैं।


9
यह समस्या आमतौर पर तब होती है जब आप गलती से एक ही JS फाइल को दो बार आयात / एम्बेड करते हैं। सटीक प्रक्रिया जो पुनरावर्ती लूप का कारण बनती है वह ऐसी कोई चीज नहीं है जिस पर मैं अटकलें लगाता हूं, हालांकि मैं यह मानूंगा कि यह समान टोल गेटवे के माध्यम से 100mph पर दो समान कारों को चलाने जैसा है।
ल्यूकेजेनिक

3
मुझे नहीं लगता कि यह मामला है। यदि दो समान प्रकार के कार्य या चर एम्बेडेड होते हैं, तो बाद वाली पिछली परिभाषाओं को पार कर जाएगी।
ssudaraka

हाँ ... मैं वास्तव में नहीं जानता कि ऐसा क्यों होता है या प्रक्रिया क्या है, मेरे पास हालांकि यह भी ओवरराइड होगा।
लक्‍सीजेनिक

पार्टी के लिए थोड़ा देर से, लेकिन कल्पना करेंगे कि जब कोड किसी भी फ़ंक्शन के बाहर होता है, तो दोनों को दो जेएस फ़ाइलों के भीतर निष्पादित किया जाएगा, और कोई संभवतः प्रत्येक अभिभावक को अधिलेखित नहीं करेगा क्योंकि वे किसी भी फ़ंक्शन के बाहर हैं।
सिलियन कोलिन्स

1
अगली बार जब आप अपने पोस्ट्स पर ट्रोल एडिट्स को मंजूरी दे रहे हैं तो अगली बार जब आप अधिक सावधान रहना चाहते हैं। इस पोस्ट में लगभग स्पैम (जांच इतिहास) के रूप में हटा दिया गया
जीन फ़्राँस्वा Fabre

56

मेरे मामले में, मैं उनके मूल्यों के बजाय इनपुट तत्व भेज रहा था:

$.post( '',{ registerName: $('#registerName') } )

के बजाय:

$.post( '',{ registerName: $('#registerName').val() } )

इसने मेरे क्रोम टैब को एक ऐसे मोड़ पर रख दिया, जब मुझे पृष्ठ अनट्रेंड हो गया, इसके लिए 'वेट / किल' डायलॉग भी नहीं दिखाया ...


3
मुझे आश्चर्य है कि ऐसी त्रुटि के लिए कोई अपवाद क्यों नहीं है ... धन्यवाद!
दस

बहुत बहुत धन्यवाद, इसने मुझे बचाया
Eme Hado

मैं इसे संभावित समाधान के रूप में जोड़ने वाला था। मैंने अभी-अभी यह सटीक बात की है
माइकल बुचोक

30

आपके कोड में कहीं एक पुनरावर्ती लूप है (यानी एक फ़ंक्शन जो अंततः खुद को बार-बार कॉल करता है जब तक कि स्टैक पूरा नहीं हो जाता है)।

अन्य ब्राउज़र में या तो बड़े स्टैक होते हैं (इसलिए आपको इसके बजाय एक टाइमआउट मिलता है) या वे किसी कारण से त्रुटि को निगल लेते हैं (शायद एक बुरी तरह से रखी गई कोशिश-कैच)।

त्रुटि होने पर कॉल स्टैक की जांच करने के लिए डीबगर का उपयोग करें।


Thx आपके उत्तर के लिए बहुत कुछ। IE / FF पर, कोड ठीक चलता है। डेस्कटॉप सफारी और iPad सफारी में, मुझे त्रुटि मिलती है। वास्तव में JS फ़ाइल मेरी स्वयं की रचना नहीं है, बल्कि एक लाइब्रेरी फ़ाइल (DWR engine.js से ) है .. directwebremoting.org इसके अलावा जब आप "कॉल स्टैक की जांच करने के लिए डिबगर" कहते हैं, तो मैं सफारी निरीक्षक का उपयोग कैसे करूं?
Testndtv

मुझे सफारी इंस्पेक्टर के साथ कोई अनुभव नहीं है। जावास्क्रिप्ट डिबगर खोलने और अपने पृष्ठ को लोड करने का प्रयास करें। जब कोई अनियंत्रित त्रुटि डाली जाती है, तो डीबगर को रोकना चाहिए। यदि वह काम नहीं करता है, तो
सुपरयुसर

एक ही नाम के 2 कार्य थे !! DOH!
jharris8567

16

स्टैकओवरफ्लो का पता लगाने में समस्या कभी-कभी स्टैक ट्रेस को खोल देगी और आप यह नहीं देख पाएंगे कि वास्तव में क्या चल रहा है।

मुझे इसके लिए Chrome के कुछ नए डिबगिंग टूल उपयोगी लगे हैं।

मारो Performance tab, सुनिश्चित करें Javascript samplesकि सक्षम हैं और आपको ऐसा कुछ मिलेगा।

यह स्पष्ट है कि अतिप्रवाह यहाँ कहाँ है! यदि आप क्लिक करते हैं extendObjectतो आप वास्तव में कोड में सटीक लाइन नंबर देख पाएंगे।

यहाँ छवि विवरण दर्ज करें

आप टाइमिंग भी देख सकते हैं जो सहायक या लाल हेरिंग नहीं हो सकती है।

यहाँ छवि विवरण दर्ज करें


एक और उपयोगी ट्रिक यदि आप वास्तव में समस्या का पता नहीं लगा सकते हैं तो बहुत सारी चीजें डालनी चाहिए console.log तो आपको लगता है कि जहाँ समस्या है, वहाँ कथन रखें। ऊपर दिया गया पिछला चरण इसमें आपकी सहायता कर सकता है।

क्रोम में यदि आप बार-बार समान डेटा का उत्पादन करते हैं, तो यह इसे इस तरह प्रदर्शित करेगा जहां समस्या अधिक स्पष्ट रूप से दिखाई देती है। अंत में दुर्घटनाग्रस्त होने से पहले इस उदाहरण में स्टैक ने 7152 फ्रेम हिट किए:

यहाँ छवि विवरण दर्ज करें


13

मेरे मामले में, मैं निम्नलिखित का उपयोग करके एक बड़ी बाइट सरणी को एक स्ट्रिंग में परिवर्तित कर रहा था:

String.fromCharCode.apply(null, new Uint16Array(bytes))

bytes कई मिलियन प्रविष्टियाँ शामिल हैं, जो ढेर पर फिट होने के लिए बहुत बड़ी है।


मुझे भी उसी लाइन में वही समस्या थी !! thanx
ksh

तो बड़े बाइट सरणी परिवर्तित करने के लिए सबसे अच्छा उपाय क्या है ??
ksh

6
@ कार्थिकांडे आपको एक कॉल के बजाय लूप के लिए करना होगा। var uintArray = new Uint16Array(bytes); var converted = []; uintArray.forEach(function(byte) {converted.push(String.fromCharCode(byte))});
नैट ग्लेन

मैं इसे JSON में कैसे परिवर्तित करूं? मैंने JSON.parse की कोशिश की, लेकिन यह काम नहीं किया ... मैं Uintl8Array
ksh

@KarthikHande मैं पूरी समस्या को देखे बिना नहीं बता सकता। कृपया सभी विवरणों के साथ एक और प्रश्न खोलें।
नैट ग्लेन

6

मेरे मामले में, क्लिक इवेंट चाइल्ड एलिमेंट पर प्रचारित कर रहा था। इसलिए, मुझे निम्नलिखित काम करना था:

e.stopPropagation ()

क्लिक इवेंट पर:

 $(document).on("click", ".remove-discount-button", function (e) {
           e.stopPropagation();
           //some code
        });
 $(document).on("click", ".current-code", function () {
     $('.remove-discount-button').trigger("click");
 });

यहाँ HTML कोड है:

 <div class="current-code">                                      
      <input type="submit" name="removediscountcouponcode" value="
title="Remove" class="remove-discount-button">
   </div>

5

Chrome देव टूलबार कंसोल में त्रुटि विवरण की जाँच करें, यह आपको कॉल स्टैक में फ़ंक्शन देगा, और त्रुटि के कारण होने वाली पुनरावृत्ति की ओर आपका मार्गदर्शन करेगा।


5

यदि आपको किसी कारण से अनंत प्रक्रिया / पुनरावृत्ति की आवश्यकता है, तो आप एक अलग थ्रेड में वेबवर्क का उपयोग कर सकते हैं। http://www.html5rocks.com/en/tutorials/workers/basics/

यदि आप डोम तत्वों और रेडवेर में हेरफेर करना चाहते हैं, तो एनीमेशन का उपयोग करें http://creativejs.com/resources/requestanimationframe/


3

यहां लगभग हर उत्तर बताता है कि यह केवल एक अनंत लूप के कारण हो सकता है। यह सच नहीं है, आप अन्यथा स्टैक को गहराई से नेस्टेड कॉल के माध्यम से चला सकते हैं (यह कहने के लिए कि कुशल नहीं है, लेकिन यह निश्चित रूप से संभव के दायरे में है)। यदि आपके पास अपने जावास्क्रिप्ट वीएम का नियंत्रण है, तो आप स्टैक आकार को समायोजित कर सकते हैं। उदाहरण के लिए:

node --stack-size=2000

यह भी देखें: मैं Node.js में अधिकतम कॉल स्टैक आकार कैसे बढ़ा सकता हूं


2

मेरे मामले में, दो jQuery के मोडल एक दूसरे के ऊपर ढेर दिखाई दे रहे थे। रोकने से मेरी समस्या हल हो गई।


2

हमने हाल ही में एक व्यवस्थापक साइट पर एक फ़ील्ड जोड़ा है जिस पर हम काम कर रहे हैं - contact_type ... आसान सही? ठीक है, अगर आप चुनिंदा "प्रकार" को कॉल करते हैं और यह भेजने की कोशिश करते हैं कि एक jquery ajax कॉल के माध्यम से यह jquery.js में गहरी दफन इस त्रुटि के साथ विफल रहता है तो ऐसा न करें:

$.ajax({
    dataType: "json",
    type: "POST",
    url: "/some_function.php",
    data: { contact_uid:contact_uid, type:type }
});

समस्या यह है कि प्रकार: प्रकार - मेरा मानना ​​है कि यह तर्क "प्रकार" का नामकरण कर रहा है - प्रकार नाम मान चर होने से समस्या नहीं है। हमने इसे बदल दिया है:

$.ajax({
    dataType: "json",
    type: "POST",
    url: "/some_function.php",
    data: { contact_uid:contact_uid, contact_type:type }
});

और तदनुसार कुछ हल किया।


1

जांचें कि क्या आपके पास एक फ़ंक्शन है जो खुद को कॉल करता है। उदाहरण के लिए

export default class DateUtils {
  static now = (): Date => {
    return DateUtils.now()
  }
}

1

इससे कोई Maximum call stack size exceededत्रुटि भी हो सकती है :

var items = [];
[].push.apply(items, new Array(1000000)); //Bad

मुझे भी:

items.push(...new Array(1000000)); //Bad

से मोज़िला डॉक्स :

लेकिन सावधान रहें: इस तरह से आवेदन करने में, आप जावास्क्रिप्ट इंजन की तर्क लंबाई सीमा को पार करने का जोखिम उठाते हैं। फ़ंक्शन को बहुत सारे तर्कों के साथ लागू करने के परिणाम (दसियों हज़ारों से अधिक तर्कों पर विचार करें) इंजनों में भिन्न होते हैं (JavaScriptCore में हार्ड-कोडेड तर्क सीमा 65536 है), क्योंकि सीमा (वास्तव में किसी भी अत्यधिक-बड़े-स्टैक की प्रकृति भी) व्यवहार) अनिर्दिष्ट है। कुछ इंजन एक अपवाद फेंक देंगे। अधिक खतरनाक रूप से, अन्य लोग मनमाने ढंग से उन तर्कों की संख्या को सीमित कर देंगे जो वास्तव में लागू फ़ंक्शन को पारित किए गए हैं। इस उत्तरार्द्ध मामले को स्पष्ट करने के लिए: यदि इस तरह के इंजन में चार तर्कों की सीमा होती है (वास्तविक सीमाएं निश्चित रूप से काफी अधिक होती हैं), तो ऐसा होगा जैसे कि तर्कों 5, 6, 2, 3 को उपरोक्त उदाहरणों में लागू करने के लिए पारित किया गया था, पूर्ण सरणी के बजाय।

इसलिए कोशिश करें:

var items = [];
var newItems = new Array(1000000);
for(var i = 0; i < newItems.length; i++){
  items.push(newItems[i]);
}

0

यदि मेरे कंप्यूटर पर Chrome 32 में 1 कार्य में कमी आई हो तो समान कोड के दोनों इनवॉइस जैसे 17905 बनाम 17904। यदि उन्हें जैसा चलाया जाता है, तो वे "रेंजएयर: अधिकतम कॉल स्टैक आकार को पार कर" त्रुटि उत्पन्न करेंगे। ऐसा प्रतीत होता है कि यह सीमा हार्डकोड नहीं है बल्कि आपकी मशीन के हार्डवेयर पर निर्भर है। ऐसा प्रतीत होता है कि यदि किसी फ़ंक्शन के रूप में इनवॉच किया गया है तो यह स्व-लगाए गए सीमा से अधिक है यदि इसे एक विधि के रूप में आमंत्रित किया जाता है अर्थात यह विशेष कोड एक फ़ंक्शन के रूप में भेजे जाने पर कम मेमोरी का उपयोग करता है।

एक विधि के रूप में आमंत्रित:

var ninja = {
    chirp: function(n) {
        return n > 1 ? ninja.chirp(n-1) + "-chirp" : "chirp";
    }
};

ninja.chirp(17905);

एक समारोह के रूप में आमंत्रित:

function chirp(n) {
    return n > 1 ? chirp( n - 1 ) + "-chirp" : "chirp";
}

chirp(20889);

0

आप क्रोम ब्राउज़र में अपने पुनरावर्ती कार्य को पा सकते हैं, ctrl + shift + j दबाएं और फिर स्रोत टैब, जो आपको कोड संकलन प्रवाह देता है और आप कोड में ब्रेक पॉइंट का उपयोग करके पा सकते हैं।


हालांकि कभी-कभी, यह पता लगाना मुश्किल हो सकता है कि त्रुटि कहां उत्पन्न हुई। हमारे पास हमारी साइट पर बहुत सारे जावास्क्रिप्ट हैं।
मथियास लिकेगार्ड लोरेनजेन

0

मुझे भी इसी तरह के मुद्दे का सामना करना पड़ा जब ड्रॉपडाउन लोगो अपलोड बॉक्स का उपयोग करते हुए लोगो को अपलोड करना है

<div>
      <div class="uploader greyLogoBox" id="uploader" flex="64" onclick="$('#filePhoto').click()">
        <img id="imageBox" src="{{ $ctrl.companyLogoUrl }}" alt=""/>
        <input type="file" name="userprofile_picture"  id="filePhoto" ngf-select="$ctrl.createUploadLogoRequest()"/>
        <md-icon ng-if="!$ctrl.isLogoPresent" class="upload-icon" md-font-set="material-icons">cloud_upload</md-icon>
        <div ng-if="!$ctrl.isLogoPresent" class="text">Drag and drop a file here, or click to upload</div>
      </div>
      <script type="text/javascript">
          var imageLoader = document.getElementById('filePhoto');
          imageLoader.addEventListener('change', handleImage, false);

          function handleImage(e) {
              var reader = new FileReader();
              reader.onload = function (event) {

                  $('.uploader img').attr('src',event.target.result);
              }
              reader.readAsDataURL(e.target.files[0]);
          }
      </script>
      </div>

CSS.css

.uploader {
  position:relative;
  overflow:hidden;
  height:100px;
  max-width: 75%;
  margin: auto;
  text-align: center;

  img{
    max-width: 464px;
    max-height: 100px;
    z-index:1;
    border:none;
  }

  .drag-drop-zone {
    background: rgba(0, 0, 0, 0.04);
    border: 1px solid rgba(0, 0, 0, 0.12);
    padding: 32px;
  }
}

.uploader img{
  max-width: 464px;
  max-height: 100px;
  z-index:1;
  border:none;
}



.greyLogoBox {
  width: 100%;
  background: #EBEBEB;
  border: 1px solid #D7D7D7;
  text-align: center;
  height: 100px;
  padding-top: 22px;
  box-sizing: border-box;
}


#filePhoto{
  position:absolute;
  width:464px;
  height:100px;
  left:0;
  top:0;
  z-index:2;
  opacity:0;
  cursor:pointer;
}

सुधार से पहले मेरा कोड था:

function handleImage(e) {
              var reader = new FileReader();
              reader.onload = function (event) {
                  onclick="$('#filePhoto').click()"
                  $('.uploader img').attr('src',event.target.result);
              }
              reader.readAsDataURL(e.target.files[0]);
          }

कंसोल में त्रुटि:

यहाँ छवि विवरण दर्ज करें

मैंने इसे onclick="$('#filePhoto').click()"div टैग से हटाकर हल किया ।


आपने क्लिक ()
Tsea

0

मैं एक ही मुद्दे का सामना कर रहा था मैंने इसे एक फ़ील्ड नाम को हटाकर हल कर दिया है जो कि अजाक्स उदाहरण पर दो बार उपयोग किया गया था

    jQuery.ajax({
    url : '/search-result',
    data : {
      searchField : searchField,
      searchFieldValue : searchField,
      nid    :  nid,
      indexName : indexName,
      indexType : indexType
    },
.....

0

मुझे पता है कि यह धागा पुराना है, लेकिन मुझे लगता है कि यह उस परिदृश्य का उल्लेख करने योग्य है, जो मुझे यह समस्या मिली, ताकि यह दूसरों की मदद कर सके।

मान लीजिए कि आपके पास इस तरह के नेस्टेड तत्व हैं:

<a href="#" id="profile-avatar-picker">
    <span class="fa fa-camera fa-2x"></span>
    <input id="avatar-file" name="avatar-file" type="file" style="display: none;" />
</a>

आप बच्चे के तत्व की घटनाओं को उसके माता-पिता की घटना के अंदर हेरफेर नहीं कर सकते क्योंकि यह खुद को प्रचारित करता है, अपवाद को फेंकने तक पुनरावर्ती कॉल करता है।

तो यह कोड विफल हो जाएगा:

$('#profile-avatar-picker').on('click', (e) => {
    e.preventDefault();

    $('#profilePictureFile').trigger("click");
});

इससे बचने के लिए आपके पास दो विकल्प हैं:

  • बच्चे को माता-पिता के बाहर ले जाएं।
  • चाइल्ड एलिमेंट पर स्टॉपप्रोपैजेशन फंक्शन लागू करें ।


0

यदि आप गूगल मैप्स के साथ काम कर रहे हैं, तो यह देख लें कि लैग लैंग को new google.maps.LatLngएक उचित फॉर्मेट में पास किया जा रहा है या नहीं । मेरे मामले में उन्हें अपरिभाषित माना जा रहा था।


0

मेरे मामले में समस्या यह है क्योंकि मेरे पास माता-पिता के साथ एक ही मार्ग के साथ बच्चे हैं:

const routes: Routes = [
  {
    path: '',
    component: HomeComponent,
    children: [
      { path: '', redirectTo: 'home', pathMatch: 'prefix' },
      { path: 'home', loadChildren: './home.module#HomeModule' },
    ]
  }
];

इसलिए मुझे बच्चों के रूट की लाइन हटानी पड़ी

const routes: Routes = [
  {
    path: '',
    component: HomeComponent,
    children: [
      { path: 'home', loadChildren: './home.module#HomeModule' },
    ]
  }
];

0

मेरे मामले में मुझे यह त्रुटि अजाक्स कॉल पर मिल रही है और जिस डेटा को मैंने उस चर को परिभाषित नहीं करने की कोशिश की है, वह मुझे यह त्रुटि दिखा रहा है लेकिन उस चर का वर्णन नहीं करते हुए परिभाषित नहीं किया गया है। मैंने जोड़ा कि चर n मान मिला।


अपने आप को एक समान तरीके से जला दिया गया, मेरे मामले में यह था क्योंकि मैंने एक चर नाम टाइप किया था ... प्रभावी रूप से एक ही बात।
user2366842

0

एक ही मुद्दे पर आ गए हैं, Coulnd't समझ में आ गया है कि क्या गलत है बबल को दोष देना शुरू कर दिया;)

कोड को ब्राउज़रों में कोई अपवाद नहीं लौटाना:

if (typeof document.body.onpointerdown !== ('undefined' || null)) {

मुद्दा बुरी तरह से बना था || (या) भाग के रूप में babel अपना स्वयं का चेक बनाता है:

function _typeof(obj){if(typeof Symbol==="function"&&_typeof(Symbol.iterator)==="symbol")

इसलिए हटा रहा हूं

|| null

बनाया बेबल वाष्पोत्सर्जन ने काम किया।


0

मेरे मामले में गलती से मैंने एक ही चर नाम दिया है, और वैल फ़ंक्शन "class_routine_id" के लिए

var class_routine_id = $("#class_routine_id").val(class_routine_id);

यह इस तरह होना चाहिए:

 var class_routine_id = $("#class_routine_id").val(); 

0

कोणीय में, यदि आप चटाई का चयन कर रहे हैं और 400+ विकल्प हैं, तो यह त्रुटि https://github.com/angular/compenders/issues/12504 हो सकती है

आपको @ कोणीय / सामग्री संस्करण अपडेट करना होगा


0

मैं रिएक्ट-नेटिव 0.61.5 का उपयोग कर रहा हूं ( npm 6.9.0 और नोड 10.16.1 )

जब मैं प्रोजेक्ट में कोई नई लाइब्रेरी स्थापित कर रहा हूँ तो मुझे एक

(उदा। npm इंस्टॉल @ रिएक्शन-नेविगेशन / नेटिव - सेव

अधिकतम कॉल स्टैक आकार त्रुटि से अधिक हो गया

उसके लिए, मैं कोशिश करता हूं

sudo npm कैश क्लीन --फोर्स

(नोट: - नीचे दिए गए आदेश में आमतौर पर आपके npm कैश आकार के आधार पर 1 से 2 मिनट का समय लगता है )


-1

कभी-कभी रूपांतरित डेटा प्रकार के कारण हुआ, उदाहरण के लिए आपके पास एक ऐसी वस्तु है जिसे आप स्ट्रिंग के रूप में मानते हैं।

njjs में socket.id या तो उदाहरण के रूप में js क्लाइंट में, एक स्ट्रिंग नहीं है। स्ट्रिंग के रूप में उपयोग करने के लिए आपको पहले स्ट्रिंग शब्द जोड़ना होगा:

String(socket.id);

-1

मैं एक वैरिएबल, एक मान निर्दिष्ट करने की कोशिश कर रहा था, जब उस वैरिएबल को घोषित नहीं किया गया था।

परिवर्तनशील घोषित करने से मेरी त्रुटि ठीक हो गई।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.