Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

वापसी समारोह जावास्क्रिप्ट

हां, ऐसा होता है, आपको कोड के बारे में सोचने के तरीके को बदलने की जरूरत है। लिखने के बजाय email_already_exists_in_mysql इसके बजाय आपको if_email_already_exists_in_mysql नामक एक फ़ंक्शन लिखना चाहिए :

/* Executes callback if email
 * already exists in mysql:
 */
function if_email_already_exists_in_mysql (email,callback) {
    connection.query(
        'SELECT COUNT(*) AS nb FROM user WHERE emailUser = ' +
        connection.escape(email),

        function(err, rows, fields) {
            if(rows[0].nb != 0) {
                callback();
            }
        }
    )
}

फिर इसे लिखने के बजाय:

//If the email hasn't a good format
if(email_not_good_format()) {
    //I do something
}
else if(email_already_exists_in_mysql(email)) {
    //I do something
}

इसके बजाय आप इसे इस तरह लिखते हैं:

//If the email hasn't a good format
if(email_not_good_format()) {
    //I do something
}
else {if_email_already_exists_in_mysql(email),function(){
    //I do something
})}

अब, आप अपने आप से पूछ सकते हैं, यदि उसके बाद कोई और हो तो क्या होगा? ठीक है, आपको if_email_already_exists_in_mysql को संशोधित करने की आवश्यकता है जैसा व्यवहार करने के लिए कार्य करता है और if...else इसके बजाय सिर्फ और if :

function if_email_already_exists_in_mysql (email,callback,else_callback) {
    connection.query(
        'SELECT COUNT(*) AS nb FROM user WHERE emailUser = ' +
        connection.escape(email),

        function(err, rows, fields) {
            if(rows[0].nb != 0) {
                callback();
            }
            else if(else_callback) {
                else_callback();
            }
        }
    )
}

ताकि आप इसे इस तरह कह सकें:

//If the email hasn't a good format
if(email_not_good_format()) {
    //I do something
}
else {
    if_email_already_exists_in_mysql(email),function(){
        //I do something
    },
    // else
    function(){
        //I do something else
    }
)}

आप कॉलबैक में पास किए गए मान को वापस करने के बजाय नियमित कोड केवल कुछ भी करने के लिए एसिंक कोड लिख सकते हैं। याद रखें:

वापसी सिंक्रोनस कोड में ==कॉलबैक . में पासिंग अतुल्यकालिक कोड में।

इसलिए कोड संरचना अलग होनी चाहिए, लेकिन जैसा कि मैंने ऊपर दिखाया है कि आप जिस तर्क को लागू करना चाहते हैं वह बिल्कुल समान हो सकता है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL त्रुटि - सिंक से बाहर आदेश; आप अभी यह आदेश नहीं चला सकते हैं

  2. पुनरावृति के बिना कर्सर में रिकॉर्ड की mysql संख्या?

  3. लूप का उपयोग करके प्रत्येक DISTINCT फ़ील्ड मान को केवल एक बार प्रदर्शित करें

  4. MySQL बिट कॉलम PHP 7.1 में अजीब बड़ी संख्या देता है (पिछले संस्करणों में नहीं)

  5. एक परिणामसेट लौटाना