PDA

View Full Version : مبتدی: میخام خروجی رو به صورت متغیر بم بده



DelDard
یک شنبه 18 مهر 1395, 16:28 عصر
سلام
من جاوا اسکریپت چندادن بلد نیستم و کارم php هست. سوالم خیلی ابتدایی هست و ممنون میشم کمکم کنید.
یه تابعی مثلا myFunction رو از اینترنت گرفتم که خروجیش 4 تا استرینگ هست مثل abcd و با استفاده از console.log() تو بخش consul در inspect بروزر نشون میده



myFuncton(function(i){console.log(i);});


خب مسئله اینه که من میخام اونها رو به صورت متغیر بهم بده که بتونم تو بقیه کد ازش استفاده کنم. منظورم از متغیر a در مثال زیر هست:



var a = screen.width;


باید از چه چیزی به جای console.log استفاده کنم که خروجی تابع رو بهم 4 تا var بده تا بتونم از این متغیر ها تو ادامه کد استفاده کنم (مثلا اونهارو با هم جمع کنم)

ممنو

blue.web9
سه شنبه 20 مهر 1395, 13:08 عصر
myFuncton(function(i){ Return i;});

DelDard
سه شنبه 20 مهر 1395, 19:08 عصر
myFuncton(function(i){ Return i;});




الان این خروجی به من چی میده؟ یه ارایه با 4 عضو که هر کدوم یه استرینگه؟

SCoder
چهارشنبه 21 مهر 1395, 13:04 عصر
تابعی که اسمش myFunction اینظور که پیداست async است ولی در هر حال تابعی است که بعد از اتمام کارش یک callback میگیرد و نتیجه را به اون میدهد و شما باید کد هایی که از این متغییر استفاده میکنن رو در درون این callback قرار بدی یعنی :


myFuncton(function(i){


// do whatever you want with i
// in here

});


و اگر حجم کد هایی که از این متغییر استفاده میکنن بالاست از design pattern به نام publish , subscribe استفاده کن...

یه کار دیگه هم هست که میتونی بکنی ولی زیاد جالب نیست ...



var result;


// for example if myFunction gives
// result after 6 sec like below
function myFunction(cb){

setTimeout(()=>{
cb(55);
},6000);


}


myFunction(function(i){


//whenever myFunction finishes it will

//set the result variable

result = i;




});






(function when_result_is_ready(){



if(!result) {return setTimeout(when_result_is_ready,20);}

//here result is ready you can use
it


alert(result);


})();