⊗jsSpACInr 155 of 294 menu

Асинхронӣ коди JavaScript бо истифодаи callback

Бигзор мо як функсияи асинхрониро дошта бошем:

function make() { setTimeout(function() { console.log('1'); }, 3000); }

Бигзор мо ин функсияро ба ин тавр истифода барем:

make(); console.log('2'); // аввал иҷро мешавад

Бигзор мо мехоҳем ҳамин тавр кунем, ки натиҷаи дуюм дар консол пас аз он ки амалиёти асинхронӣ дар дохили функсия иҷро шавад, ба намоиш гузошта шавад. Яке аз равишҳои истифодашаванда барои ин, истифодаи callback мебошад: коди интизорро дар як функсияи бе ном мепечонем ва онро ба унвони параметр ба функсияи make мегузаронем:

make(function() { console.log('2'); });

Албатта, худи ин масъалаи моро ҳал намекунад. Ҳоло мо танҳо ин созишро бастаем: агар мехоҳед коди пас аз фаъол шудани make иҷро шавад, он кодро ба унвони callback дар даъвати make гузаронед.

Коди функсияи make-ро тавре ислоҳ кунем, ки он боқияд бо созиши мо кор кунад:

function make(callback) { setTimeout(function() { console.log('1'); // ягон амалиёти асинхронӣ, шояд як нафар набошад callback(); // сипас callback-и мо }, 3000); }

Ба гуфтанд, ба кадом тартиб рақамҳо дар консол чоп карда мешаванд:

function make(callback) { setTimeout(function() { console.log('1'); callback(); }, 3000); } make(function() { console.log('2'); console.log('3'); });
Тоҷикӣ
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Мо барои коркарди сомона, таҳлил ва шахсӣ кардан аз cookie истифода мебарем. Коркарди маълумот мувофиқи Сиёсати махфият сурат мегирад.
ҳамаро қабул кардан танзим кардан рад кардан