【发布时间】:2017-02-18 06:29:58
【问题描述】:
我是一名初级 javascript 程序员。我一直在尝试理解异步 javascript,但我想澄清一些事情。
我知道 javascript 在单线程中运行,并且您可以使用回调函数使您的代码异步,但我对什么使回调函数异步或不异步感到困惑。
许多异步回调似乎都遵循一种模式,其中一个函数将某个动作作为其参数,然后是一个回调函数,该函数将在该动作完成时执行:
jQuery.get('page.html', function (data) {
console.log("second");
});
console.log('first');
是什么让这里的参数中的回调稍后执行?是不是这里的 get 方法被预定义为某种特殊方法(因为它获取文件),如果您将函数作为第二个参数传递,它会以异步方式运行?
您如何制作您自己编写的异步函数?
谢谢
【问题讨论】:
-
大部分异步 API 都是浏览器内置的,例如
XMLHTTPRequest(网络 I/O)或事件处理。因为它们是异步的,所以与这些 API 交互的 JavaScript API 必须考虑到这一点。 -
看看this。
jQuery.get是JS XMLHttpRequerst的包装器,异步选项设置为 true。所以它的行为是异步的。 -
JS, Async or Not?!的另一个很好的解释
标签: javascript asynchronous callback