parse.com - how to handle the return of a javascript function with nested Parse.Promises inside -


मेरे पास यह फ़ंक्शन है:

  फ़ंक्शन doCalculateStopBefore (thisD, lastD) {thisD.attributes .start.fetch ()। फिर (फ़ंक्शन () {lastD.attributes.end.fetch ();})। फिर (फ़ंक्शन () {// इस सामग्री का उपयोग करके कुछ सामान की गणना करें.उत्पादों। प्रारंभ और अंतिम D.attributes। इस डीसेट को बंद करें ('प्रॉपर्टी', मान); // & lt; --- महत्वपूर्ण; thisd को अपडेट करें!}); इस डी वापसी; // & lt; --- !!! यह पंक्ति वादों श्रृंखला के लिए नहीं चाहता है! }   

thisD और lastD हैं पार्स.ऑब्जेक्ट । मुझे इस 2 क्षेत्र (संकेतों को एक अन्य पार्स कक्षा) लाने की ज़रूरत है, फिर इस मान के साथ कुछ सामान की गणना करें और thisD को अपडेट करें। फिर मैं फ़ंक्शन समाप्त करना चाहता हूं ...

फ़ंक्शन को _ में बुलाया जा रहा है। प्रत्येक लूप इस तरह से:

  _.each (myCollection.models, फ़ंक्शन (यह डी, इंडेक्स) {if (index == 0) {// उपयोगकर्ता की पहली प्रविष्टि / कुछ भी नहीं करते।} Else {// thisD = doCalculateStopBefore (thisD, myCollection.models [सूचकांक 1]); // उपरोक्त यह है कि कैसे मैं इसे पहले किया था। // नीचे है ट्रॉय के उत्तर का मेरा कार्यान्वयन: doCalculateStopBefore (यह डी, myCollection.models [अनुक्रमणिका -1]। तब (फ़ंक्शन (यह डी) {कंसोल लॉग करें (यह डी। विशेषताएँ); इस ड्रायव = thisD;})} वादे। Push (thisD.save ());});   

मैं आखिर में आखिर में रिटर्न कैसे वापस कर सकता हूँ, या इसे किसी तरह से चेन कर सकता हूं?

आपको अपने पहले प्राप्त होने से वादा वापस करना है () में doCalculateStopBefore () में और इसके बाद एक अपडेट () को अद्यतन मान को कैप्चर करने के लिए जोड़ें। नीचे अद्यतन कोड देखें।

  फ़ंक्शन doCalculateStopBefore (thisD, lastD) {वापस इस डी.डेट्स.start.fetch ()। फिर (फ़ंक्शन () {lastD.attributes.end.fetch ();})। फिर (Function () {// इस सामग्री का उपयोग करके कुछ सामानों की गणना करें.उत्पादों। प्रारंभ // और अंतिम डी। विशेषताएँ। ThisD.set ('property', value); // & lt; --- महत्वपूर्ण; ;}); }   

आप इसे पाश के रूप में नीचे के रूप में एक पाश में कॉल कर सकते हैं। प्रोमोसेस। जब () सभी बचाए समन्वय करने के लिए।

  var का वादा किया है [=] ; _.each (myCollection.models, फ़ंक्शन (यह डी, इंडेक्स) {if (इंडेक्स == 0) {// उपयोगकर्ता का पहला एंट्री / कुछ भी नहीं करते हैं।} और (वादे। पश (doCalculateStopBefore (thisD, myCollection.models [सूचकांक 1])। फिर (फ़ंक्शन (यह डी) {console.log (this.D.attributes); thisDrive = thisD; वापस आइये; ();}));}}}; Parse.Promise.when (वादे) .then (function () {console.log ("done");});    

Comments

Popular posts from this blog

c# - Textbox not clickable but editable -

Matlab transpose a table vector -

ios - Adding an SKSpriteNode to SKScene from a child SKSpriteNode -