Promise 是 ES 6 Async/Await 是 ES 7 Rxjs 是一个 js 库 在使用 angular 时,你会经常看见这 3 个东西. 它们都和异步编程有关,有些情况下你会觉得用它们其中任何一个效果都一样. 但又觉得好像哪里不太对.... 这篇就来说说,我在开发时的应用方式. 在 Typescript 还没有支持 Async/Await 的时候, angular 就已经发布了. 那时我们只想着 Promise vs Rxjs 这 2 者其实很好选择, 因为 "可读性"…
RxJS 博大精深,看了好几篇文章都没有明白. 范围牵扯到了函数响应式开发去了... 我对函数式一知半解, 响应式更是第一次听到... 唉...不过日子还是得过...混着过先呗 我目前所理解的很浅, 大致上是这样的概念. 1.某些场景下它比promise好用, 它善于过滤掉不关心的东西. 2.它是观察者模式 + 迭代器模式组成的 3.跟时间,事件, 变量有密切关系 4.世界上有一种东西叫 "流" stream, 一个流能表示了一段时间里,一样东西发生的变化. 比如有一个值, 它在某段时…
一.异步方法返回类型 只能返回3种类型(void.Task和Task<T>). 1.1.void返回类型:调用方法执行异步方法,但又不需要做进一步的交互. class Program { static void Main(string[] args) { #region async & await入门二之void返回类型 AddAsync(, ); Thread.Sleep(); Console.WriteLine("AddAsync方法执行完成."); Conso…
一.Task.Yield Task.Yield简单来说就是创建时就已经完成的Task,或者说执行时间为0的Task,或者说是空任务,也就是在创建时就将Task的IsCompeted值设置为0. 我们知道await的Task完成时会释放线程,然后从线程池中申请新的线程继续执行await之后的代码,那产生的空任务又意义何在呢? 事实上,Task.Yield产生的空任务仅仅是借await做嫁衣来达到线程切换的目的,即让await之后的操作重新去线程池排队申请新线程来继续执行. 这样一来,假如有一个优先…
一.涉及内容 async & await是C# 5.0引入的,控制台输出所使用的$符号(拼接字符串)是C# 6.0引入的,其功能类似于string.Format()方法. 二.多线程.异步.同步之间的联系与区别 厨房案例: 比如说你要炒5道菜ABCDE,但是只有两个炉子可以用,即同时只能炒两道菜.在这里,炉子就是线程. 假如两个炉子分别同时炒A和B,那剩下的CDE只能等A或B炒完了才能开始.这个等待的过程就是同步,我们称之为阻塞,即这个时候你只能炒A和B这两道菜. 假如你还有一台咖啡机,在你炒A…
1.接口奇葩验证 interface Abc { name : string } function abc(obj : Abc) { } let ttc = { name: "adad", age: 12 }; abc(ttc); //no error abc({ name: "adad", age: 12 }); //error 对象字面量会有特别的检查, 所以一个 no error ,一个 error. 2. readonly const data: strin…
Koa2学习(二)async/await koa2中用到了大量的async/await语法,要学习koa2框架,首先要好好理解async/await语法. async/await顾名思义是一个异步等待的语法,是es7中为了实现用同步的方式写异步方法的一种新式语法. async 我们再来看看async到底是一个什么语法: 普通的方法: function syncF() { return 'I am a sync result' } let sync_result = syncF() console…
JavaScript:学习笔记(9)——Promise对象 引入Promise Primose是异步编程的一种解决方案,比传统的解决方案回调函数和事件更加合理和强大.如下面为基于回调函数的Ajax操作: request.onreadystatechange = function () { if (request.readyState === 4) { if (request.status === 200) { return success(request.responseText); } els…
业务场景描述 大家都通过互联网投递过简历,比如在智联.58.猎聘等平台.投递心仪的职位前一般都需要前提创建一份简历,简历编辑界面常规的布局最上面是用户的个人基本信息,如姓名.性别.年龄.名族等,接着是用户的工作履历.项目经验.培训经历.擅长技能等详细信息.布局的结尾或首部都会有保存按钮,方便用户一键保存填写的信息. 假如此业务利用vue开发,可以将个人基本信息.项目经验.擅长技能 各自做成一个独立的单文件组件,组件内自己进行数据的获取和保存操作,最后将这些组件组合到一起形成一个简历编辑页面,在编…
1.Promise (名字含义:promise为承诺,表示其他手段无法改变) Promise 对象代表一个异步操作,其不受外界影响,有三种状态: Pending(进行中.未完成的) Resolved(已完成,又称 Fulfilled) Rejected(已失败) promises的优势 1.解决回调地狱 2.更好地进行错误捕获 有时我们要进行一些相互间有依赖关系的异步操作,比如有多个请求,后一个的请求需要上一次请求的返回结果.过去常规做法只能 callback 层层嵌套,但嵌套层数过多的话就会有…