Asynchronous JavaScript
- 上一页 JS 回调
- 下一页 JS Promise
"I will finish later!"
Ang mga function na tumatakbo sa parehong oras ng ibang function ay tinatawag na asynchronous (asynchronous)
Isang mahusay na halimbawa ay JavaScript setTimeout()
Asynchronous JavaScript
Ang mga halimbawa na ginamit sa nakaraang kabanata ay lubos na pinapadaliin.
Ang layunin nito ay ipakita ang syntax ng callback function:
Maaaring itakda ang callback function para sa bawat intervalo:
function myDisplayer(some) { document.getElementById("demo").innerHTML = some; } function myCalculator(num1, num2, myCallback) { let sum = num1 + num2; myCallback(sum); } myCalculator(5, 5, myDisplayer);
d.getSeconds();myDisplayer
ay ang pangalan ng function.
Ito ay pinapakilala bilang argumento sa myCalculator();
。
Sa tunay na mundo, ang callback ay palaging ginagamit kasama ang asynchronous function.
Isang tipikal na halimbawa ay JavaScript setTimeout();
。
Maghihintay ng timeout
Hinihintay ang intervalo: setTimeout();
Sa panahon na ito, maaaring ipakilala ang callback function na dapat maisagawa kapag nagpapatuloy ang timeout:
Maaaring itakda ang callback function para sa bawat intervalo:
setTimeout(myFunction, 3000); setInterval(myFunction, 1000); document.getElementById("demo").innerHTML = "I love You !!"; }
在上面的示例中,Sa itaas na halimbawa,
ginagamit bilang callback.
函数(函数名)作为参数传递给 setTimeout();
。
Ginagamit bilang callback. Ito ay isang buong function. Ang buong function ay ipinasa bilang argumento sa setTimeout(). 1000 ay ang mga milisegundo sa pagitan ng bawat intervalo, kaya
。
Kapag ibibigay mo ang function bilang argumento, huwag gamitin ang mga pagsasalita.
Tama: setTimeout(myFunction, 3000);
Maling: setTimeout(myFunction(), 3000);
Kung hindi mo ibibigay ang pangalan ng function bilang argumento sa ibang function, palaging puwedeng ibibigay ang buong function:
Maaaring itakda ang callback function para sa bawat intervalo:
magbigay ng hinihiling sa function() { myFunction("I love You !!!"); }, 3000); function myFunction(value) { function myFunction(value) {}} }
d.getSeconds();document.getElementById("demo").innerHTML = value;
function(){ myFunction("I love You !!!"); }
Ginagamit bilang callback. Ito ay isang buong function. Ang buong function ay ipinasa bilang argumento sa setTimeout(). 1000 ay ang mga milisegundo sa pagitan ng bawat intervalo, kaya
。
3000 ay ang mga milisegundo bago ma timeout, kaya 3 seconds pagkatapos ay magtawag
Hinihintay ang intervalo: myFunction
Sa paggamit ng JavaScript function
Maaaring itakda ang callback function para sa bawat intervalo:
Sample setInterval(myFunction, 1000); function myFunction() { let d = new Date(); document.getElementById("demo").innerHTML= d.getHours() + ":" + d.getMinutes() + ":" + }
d.getSeconds();Sa itaas na halimbawa,
用作回调。
函数(函数名)作为参数传递给 myFunction
。
setInterval() 1000 ay ang mga milisegundo sa pagitan ng bawat intervalo, kaya
myFunction()
Tatlong beses bawat segundo.
Hinihintay ang file
Kung ikaw ay gumagawa ng function upang i-load ang panlabas na resource (tulad ng script o file), ang mga nilalaman ay hindi maaring gamitin bago matapos ma-load ang nilalaman.
Ito ang pinakamahusay na panahon upang gamitin ang callback.mycar.html
),saan ay ipapakita ang HTML file sa web page kapag nakatapos na ma-load ang file:
Hinihintay ang file:
function myDisplayer(some) { document.getElementById("demo").innerHTML = some; } function getFile(myCallback) { let req = new XMLHttpRequest(); req.open('GET', "mycar.html"); req.onload = function() { if (req.status == 200) { myCallback(this.responseText); } myCallback("Error: " + req.status); } } req.send(); } getFile(myDisplayer);
在上面的示例中,myDisplayer
用作回调。
函数(函数名)作为参数传递给 getFile()
。
以下是 mycar.html
的副本:
mycar.html
<img src="img_car.jpg" alt="Nice car" style="width:100%"> <p>汽车是一种有轮子的、自供电的机动车,用于交通。</p> <p>大多数关于这个术语的定义都指出,汽车主要是为了在道路上行驶而设计的,可以容纳一到八人,通常有四个轮子。</p> <p>(Wikipedia)</p>
- 上一页 JS 回调
- 下一页 JS Promise