韶华小苑 |

时光不负终不老

您现在的位置是: 首页 > 文章 >

js异步方法的编写

js异步方法的编写

大帅哥 2020-09-20 暂无评论 前端 10

以前我很好奇像jq里面的 $.post() 异步方法的实现是怎么样的,为什么就可以不堵塞进程,异步执行了?
然后一研究,关于异步这方面,是真的有种恍然大悟的感觉

简单来说,正常的执行应该是从上到下,一行行执行的代码。
比如下面的这个代码:

console.log("123:我是首先执行的代码");
console.log("456:我是中间执行的代码");
console.log("789:我是最后执行的代码");

输出顺序肯定是先123,然后 456,最后789

果然

输出1

即使改造一下,构造成函数:

// 调用函数
testEcho();

console.log("456:我是中间执行的代码");
console.log("789:我是最后执行的代码");

// 定义函数
function testEcho() {
    console.log("123:我是首先执行的代码");
}

现在也是一样

输出2

那有没有办法能够让 123 这一行异步执行呢,不用等这个函数执行完就可以继续执行刚刚那段代码的方法呢?

有的,就是异步处理,也很简单,只要把函数稍加改造就可以:

// 调用函数
testEcho();

console.log("456:我是中间执行的代码");
console.log("789:我是最后执行的代码");

// 定义函数
function testEcho() {
    setTimeout(function(){
        console.log("123:我是首先执行的代码");
    }, 0);
}

可以看到我们给代码的第9行增加了一个setTimeout()定时器,即使是0秒延时,也是异步执行,可以看到执行结果是下面这样的了。

输出3

利用这个特性,我们就可以封装各类异步方法了~

让我们一起愉快的玩耍吧~

本文链接: https://hw13.cn/2dd0338fe49eb488bd7617cfafe77944.html 最后修改时间: 2020-09-27 19:55:36

瞅我来气不?用红包砸死我吧

赞赏作者
扫一扫支付