Ma'lumotlar modulidan funktsiyadan chiqish.

request moduli yordamida http so'rovidan olingan ma'lumotlarni qaytaradigan modul ustida ishlayapman. Biroq, bu funksiyadan ma'lumotlarni uzatmoqchi bo'lganimda muammoga duch kelaman. Buni masalan, oling.

function getData(term) {
    var parsedData
    request.post(url, term, (err, response, body) => {
        if (!err && response.statusCode == 200) {
              parsedData = doSomethingTo(body);
        }
    });
    return parsedData;
}

Ushbu usul ishlamaydi, chunki getData() funktsiyasi mos kelmasligi bilan bajariladi va so'rov aslida to'g'ri ma'lumotni qaytarishdan oldin qaytariladi.

function getData(term) {
    var parsedData
    request.post(url, term, (err, response, body) => {
        if (!err && response.statusCode == 200) {
              parsedData = doSomethingTo(body);
              return parsedData;
        }
    });
}

Ushbu usul ham ishlamaydi, chunki u faqat so'rovini funksiyasini getData funksiyasini emas, balki ayrıştırılmış ma'lumotlarni qaytaradi.

Ota-ona funktsiyasini spam vazifasidan ajratilgan ma'lumotni qanday qilib qaytarishim mumkin?

0
request.post doim mos kelmaydigan bo'lsa, siz parsedData bilan olib boriladigan getData funksiyasiga qayta qo'ng'iroq qilish funktsiyasini topshirishingiz kerak yoki
qo'shib qo'ydi muallif Patrick Hund, manba
request.post doim mos kelmaydigan bo'lsa, siz parsedData bilan olib boriladigan getData funksiyasiga qayta qo'ng'iroq qilish funktsiyasini topshirishingiz kerak yoki
qo'shib qo'ydi muallif Patrick Hund, manba
request.post doim mos kelmaydigan bo'lsa, siz parsedData bilan olib boriladigan getData funksiyasiga qayta qo'ng'iroq qilish funktsiyasini topshirishingiz kerak yoki
qo'shib qo'ydi muallif Patrick Hund, manba

6 javoblar

bluebird so'z modulidan juda tez foydalaning.

var Promise = require('bluebird');
function getData(term) {
return new Promise(function(resolve,reject){


     if (!err && response.statusCode == 200) {
          var parsedData = doSomethingTo(body);
          resolve(parsedData);
    }else{
    reject(err);
    }
});

}; 

keyin siz vazifani chaqiradigan joy buni amalga oshiradi;

var promise = getData(term);
promise.then(function(data){console.log(data)}).catch(function(err){console.error(err)});
0
qo'shib qo'ydi
Iltimos, doimo tarmoq orqali faollashadigan xatolaringizni. ushbu namunaga amal qiling.
qo'shib qo'ydi muallif Remario, manba

bluebird so'z modulidan juda tez foydalaning.

var Promise = require('bluebird');
function getData(term) {
return new Promise(function(resolve,reject){


     if (!err && response.statusCode == 200) {
          var parsedData = doSomethingTo(body);
          resolve(parsedData);
    }else{
    reject(err);
    }
});

}; 

keyin siz vazifani chaqiradigan joy buni amalga oshiradi;

var promise = getData(term);
promise.then(function(data){console.log(data)}).catch(function(err){console.error(err)});
0
qo'shib qo'ydi
Iltimos, doimo tarmoq orqali faollashadigan xatolaringizni. ushbu namunaga amal qiling.
qo'shib qo'ydi muallif Remario, manba

bluebird so'z modulidan juda tez foydalaning.

var Promise = require('bluebird');
function getData(term) {
return new Promise(function(resolve,reject){


     if (!err && response.statusCode == 200) {
          var parsedData = doSomethingTo(body);
          resolve(parsedData);
    }else{
    reject(err);
    }
});

}; 

keyin siz vazifani chaqiradigan joy buni amalga oshiradi;

var promise = getData(term);
promise.then(function(data){console.log(data)}).catch(function(err){console.error(err)});
0
qo'shib qo'ydi
Iltimos, doimo tarmoq orqali faollashadigan xatolaringizni. ushbu namunaga amal qiling.
qo'shib qo'ydi muallif Remario, manba

Shu kabi va'dalarni foydalaning:

function getData(term) {
    return new Promise(function(resolve){
      request.post(url, term, (err, response, body) => {
        if (!err && response.statusCode == 200) {
              var parsedData = doSomethingTo(body);
              resolve(parsedData);
        }
      });
   });
}

va o'zingizning vazifangizga quyidagi kabi qo'ng'iroq qilishingiz mumkin:

getData(term).then(function(data){
   //console.log(data);
}) 
0
qo'shib qo'ydi

Shu kabi va'dalarni foydalaning:

function getData(term) {
    return new Promise(function(resolve){
      request.post(url, term, (err, response, body) => {
        if (!err && response.statusCode == 200) {
              var parsedData = doSomethingTo(body);
              resolve(parsedData);
        }
      });
   });
}

va o'zingizning vazifangizga quyidagi kabi qo'ng'iroq qilishingiz mumkin:

getData(term).then(function(data){
   //console.log(data);
}) 
0
qo'shib qo'ydi

Shu kabi va'dalarni foydalaning:

function getData(term) {
    return new Promise(function(resolve){
      request.post(url, term, (err, response, body) => {
        if (!err && response.statusCode == 200) {
              var parsedData = doSomethingTo(body);
              resolve(parsedData);
        }
      });
   });
}

va o'zingizning vazifangizga quyidagi kabi qo'ng'iroq qilishingiz mumkin:

getData(term).then(function(data){
   //console.log(data);
}) 
0
qo'shib qo'ydi
NodeJS Uzbekistan
NodeJS Uzbekistan
152 ishtirokchilar

Guruh NodeJS bo'yicha muloqot qilish uchun ochilgan. Sizni qiziqtirsa: @nodejs_uz @react_uz @angular_uz @yiiframework_uz @js_uzb @typescript_uzb @vuejs_uz @ngTashkent @laravel_uz @uzdevgroup Ish o'rinlari @UzDev_jobs