আমি কিভাবে এই পর্যায়ে সমাধান?
এমনি :
setTimeout((function(_deepFunction ,_deepData){
var _deepResultFunction = function _deepResultFunction(){
_deepFunction(_deepData);
};
return _deepResultFunction;
})(fromOuterFunction, fromOuterData ) , 1000 );
সেটটাইমআউট কোনও ফাংশনের রেফারেন্সের জন্য অপেক্ষা করুন, তাই আমি এটি একটি বন্ধে তৈরি করেছি, যা আমার ডেটাটির ব্যাখ্যা করে এবং আমার ডেটার একটি ভাল উদাহরণ দিয়ে একটি ফাংশন ফিরিয়ে দেয়!
আপনি এই অংশটি উন্নত করতে পারেন:
_deepFunction(_deepData);
// change to something like :
_deepFunction.apply(contextFromParams , args);
আমি এটি ক্রোম, ফায়ারফক্স এবং আইটিতে পরীক্ষা করেছিলাম এবং এটি কার্যকরভাবে সম্পাদন করে, আমি পারফরম্যান্স সম্পর্কে জানি না তবে এটি কাজ করার জন্য আমার এটির প্রয়োজন ছিল।
একটি নমুনা পরীক্ষা:
myDelay_function = function(fn , params , ctxt , _time){
setTimeout((function(_deepFunction ,_deepData, _deepCtxt){
var _deepResultFunction = function _deepResultFunction(){
//_deepFunction(_deepData);
_deepFunction.call( _deepCtxt , _deepData);
};
return _deepResultFunction;
})(fn , params , ctxt)
, _time)
};
// the function to be used :
myFunc = function(param){ console.log(param + this.name) }
// note that we call this.name
// a context object :
myObjet = {
id : "myId" ,
name : "myName"
}
// setting a parmeter
myParamter = "I am the outer parameter : ";
//and now let's make the call :
myDelay_function(myFunc , myParamter , myObjet , 1000)
// this will produce this result on the console line :
// I am the outer parameter : myName
আরও স্বীকৃত করতে আপনি স্বাক্ষরটি পরিবর্তন করতে পারেন:
myNass_setTimeOut = function (fn , _time , params , ctxt ){
return setTimeout((function(_deepFunction ,_deepData, _deepCtxt){
var _deepResultFunction = function _deepResultFunction(){
//_deepFunction(_deepData);
_deepFunction.apply( _deepCtxt , _deepData);
};
return _deepResultFunction;
})(fn , params , ctxt)
, _time)
};
// and try again :
for(var i=0; i<10; i++){
myNass_setTimeOut(console.log ,1000 , [i] , console)
}
এবং মূল প্রশ্নের উত্তর দিতে চূড়ান্ত:
myNass_setTimeOut( postinsql, 4000, topicId );
আশা করি এটি সাহায্য করতে পারে!
PS: দুঃখিত তবে ইংরেজি এটা আমার মাতৃভাষা নয়!