前言在面试的时候,经常会有面试官让你实现一个 Promise,如果参照 A+规范来实现的话,可能面到天黑都结束不了。 说到 Promise,我们首先想到的最核心的功能就是异步链式调用,本篇文章就带你用 20 行代码实现一个可以异步链式调用的 Promise。 这个 Promise 的实现不考虑任何异常情况,只考虑代码最简短,从而便于读者理解核心的异步链式调用原理。代码function Promise(fn) { this.cbs = []; const resolve = (value) => { setTimeout(() => { this.data = value; this.cbs.forEach((cb) => cb(value)); }); } fn(resolve); } Promise.prototype.then = function (onResolved) { return new Promise((resolve) => { this.cbs.push(() =
问题农场有1只母羊,母羊会在第2年,第4年各生下一只母羊,母羊第5年会死亡,20年后有多少只母羊 ?PHP实现代码//定义数组,维护各年龄段的母羊数量 $sheep = array(1,0,0,0,0); for($i=1;$i<=20;$i++){ //每年得到新生产的羊(2岁和4岁的羊会生产新的羊) $new_sheep = $sheep[1] + $sheep[3]; //把新生产的小羊数量放到数组开头,表示只有一年 array_ushift($sheep,$new_sheep); //删除超过5年的老羊 array_pop($new_sheep); } //循环结束后得到各个年龄段的母羊数量,相加得到结果 echo array_sum($new_sheep);本质上是一个出栈入栈的题目
在Mac下给自己签发泛域名证书并本地信任
在计算机科学中,ACID(Atomicity 原子性、Consistency 一致性、Isolation 隔离性、Durability 持久性)是一系列属性。
1 RDB和AOF两种持久化机制的介绍1.RDB持久化就是对redis中的数据执行周期性的数据快照备份,这个周期可以自己配置。2.AOF持久化机制对每条写入命令都以append-only的模式写入一个日志文件中,在redis重启的时候,可以通过回放AOF日志中的写入指令来重新构建整个数据集,append-only可以配置异步或同步。