Js 的异步解决方案(回调函数,Promise,async,obserable)

        js的内部代码执行是单线程的,这就意味着js代码如果不做特殊处理,所有的代码执行顺序都是同步的,即从头到尾执行。但是,随着前端功能的越来越多样化,为了节省时间,提高效率,便需要使用异步,即多线程执行。所以,前端的伪多线程,异步解决方案应运而生。从最早的回调函数,到Promise,再到Generator函数,再到新的状态管理工具,reactX等多样,新潮的异步解决方案。下面就是一些关于他们的简单介绍。

1.回调函数:所谓回调函数,就是把任务的第二段单独写在一个函数里面,等到重新执行这个任务的时候,就直接调用这个函数 

    我的理解:就是把还不执行的代码以一个函数的形式保存着,并不执行。当之后某个条件达成,直接调用这个函数,执行代码。回头了来调用,所以叫回调。

 借用一下一峰大神的例子(读取文件):

1 fs.readFile('/etc/passwd', function (err, data) {
2   if (err) throw err;
3   console.log(data);
4 });

   先来看下这个例子,这是一个读取文件后,执行blabla...的函数。它先会执行读取文件操作,并不执行第二个函数,然后再继续往后执行。等读完文件后,再次回头执行第二个函数。这就一个典型的自动回调函数,yeah!✌

2.Promise:一个前端异步解决方案,也就是为了实现异步而诞生的。

    要理解Promise,得先来看看Promise到底是什么,以及它所运行的规则是什么。一言不合上代码。

复制代码
1 var promise = new Promise(function(resolve, reject){
2     // ... some code
3     
4     if (/* 异步操作成功 */) {
5         resolve(value);
6     } else {
7         reject(error);
8     }
9 })
复制代码

 

查阅引用的来源,如有侵权,立删

1.阮一峰  Generator 函数的含义与用法async 函数的含义和用法

2.流眸Tel  JS执行——Promise

posted @   两块五的菜鸟  阅读(63)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示