首页
学习
活动
专区
圈层
工具
发布

讲讲标准的 Promise 长啥样?

作者:feix760 序言 不同项目下lib里的promise/deferred往往是差异化最多的,用起来和自己的习惯相比经常是缺胳膊少腿,因此聊聊标准的Promise的啥样的。...不同的 Promise 差异基本表现如下: 构造Promise对象 new Promise().resolve() ornew Pomise(function(resolve, reject) {})...标准的 Promise 构造 : new Promise(function(resolve, reject) {}) 静态方法 : Promise.all(iterable) Promise.race(...不标准的使用 构造Promise对象: new Promise().resolve() ( 请使用new Promise(function(resolve, reject) {}) ) .done()...规范 npm promise 支持标准es6规范,增加了done()等方法 npm node-promise 支持标准es6规范,增加了更多的工具方法,人气不如npm promise jquery promise

71200
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    能让 JS 执行的 JavascriptCore ,到底是啥

    那它们是如何组合在一起的呢?往下看。 JSVirtualMachine:JS 虚拟机 JavaScript 代码在由 JSVirtualMachine 类表示的虚拟机中执行。...JSValue JSValue 是你必须使用的主要数据类型:它可以表示任何可能的 JavaScript 值。...下图显示了上述每个部分之间是如何协同工作的: image.png 现在你对 JavaScriptCore 框架中已经有了初步的了解。接下来,我们来看看 IOS 代码与 JS 代码之间是如何调用的。...JSExport是JavaScriptCore框架里的一个协议。如果一个协议遵守了JSExport,那么该协议的方法会对JS开放,允许JS直接调用)。...如果你导出的是一个类的方法时,JavascriptCore 框架则会在构造函数上创建一个 Javascript 函数。

    2.1K20

    JS高阶(一)Promise

    抽象表达: Promise是ES6中新增的规范; Promise是js中异步编程的新解决方案(旧方案采用函数回调); 具体表达: 从语法上说:Promise是一个构造函数; 从功能上说:Promise...promise 对象; 说明:返回一个成功/失败的 promise 对象; //创建promise.resolve对象 //如果传入的对象为 非promise对象 则返回的是一个 成功的promise...对象; 说明:只返回一个失败的 promise 对象; //创建promise.resolve对象 //如果传入的对象为 非promise对象 则返回的是一个 成功的promise对象 //如果传入的对象...如果返回值是一个非promise类型的数据 => 成功 // return 521; // 2.如果返回的是一个promise对象 // return new Promise((resolve,...; 如果表达式是 promise 对象,则 await 返回的是 promise 成功的值; 如果表达式是其他值,则将此值作为 await 的值进行返回; async function main(){

    3.3K10

    什么是Promise

    Promise,前端绕不过去的坎,请说说你对promise的理解,请实现一个简单的promise,类似问题比比皆是,今天给大家捋捋 什么是Promise Promise 对象⽤来进⾏延迟( deferred...) 和异步( asynchronous ) 计算 Promise的设定是一个不可逆的状态机,包含:“PENDDING”,“RESOLVED”,“REJECTED”,三种状态 Promise基本用法 var...链路上所有抛出的异常 all 方法可以将多个Promise实例包装成一个新的Promise实例。...同时,成功和失败的返回值是不同的,成功的时候返回的是一个结果数组,而失败的时候则返回最先被reject失败状态的值。...race 方法就是赛跑的意思,谁运行的快,就返回谁的结果,不管结果本身是成功状态还是失败状态。

    48520

    远观 JS | 03:Promise 是类似 pthread 的内核机制

    把Promise当成pthread看,很多反直觉的地方就顺了。Promise不是语法糖,也不是普通库函数,而是JS引擎内部的异步任务控制块。...newPromise()≈创建任务resolve()≈通知完成.then()/await≈回收结果并继续它和pthread的区别只在层次:pthread管理操作系统线程,Promise管理JS引擎里的异步任务与微任务调度...展开代码语言:TXTAI代码解释┌───────────────────────────────────────程序员JS代码层─────────────────────────────────────...构造器▼┌────────────────────────────────────────JS引擎内部层─────────────────────────────────────────┐│││┌───...─────────────────────────────────────────────┘这张图核心就一句话:我在executor里按下resolve()这个开关,但真正让异步任务“完成-继续”的,是引擎内部的状态机和微任务调度

    12120

    什么是Promise呢?

    4、Promise 什么是Promise呢? ES6中一个非常重要和好用的特性就是Promise 但是初次接触Promise会一脸懵逼,这TM是什么东西?...Promise到底是做什么的呢? Promise是异步编程的一种解决方案。 那什么时候我们会来处理异步事件呢? 一种很常见的场景应该就是网络请求了。...我们更加期望的是一种更加优雅的方式来进行这种异步操作。 如何做呢?就是使用Promise。 Promise可以以一种非常优雅的方式来解决这个问题。...new Promise很明显是创建一个Promise对象 小括号中((resolve, reject) => {})也很明显就是一个函数,而且我们这里用的是之前刚刚学习过的箭头函数。...如果是失败的,那么通常我们会调用reject(error),这个时候,我们后续的catch会被回调。 OK,这就是Promise最基本的使用了。

    53930

    JS异步执行,Promise用法

    Promise Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理且更强大。...值得注意的是,Promise新建后就会立即执行。...async函数对 Generator 函数的改进,async 函数必定返回 Promise,我们把所有返回 Promise 的函数都可以认为是异步函数。...特点体现在以下四点: 内置执行器 更好的语义 更广的适用性 返回值是 Promise await   顾名思义,等待。正常情况下,await命令后面是一个 Promise 对象,返回该对象的结果。...如果不是 Promise 对象,就直接返回对应的值。另一种情况是,await命令后面是一个thenable对象(即定义then方法的对象),那么await会将其等同于 Promise 对象。

    7.2K30

    什么是Promise串行

    什么是Promise串行 Promise串行是指每一个由promise封装的任务都顺序执行,即上一个执行完成后再执行下一个。...执行过程大致是下面的样子: Task A | ------>| Task B | ------>| Task C | ------>| Task D |...定义 type Task = () => Promise (即 Task 是一个 类型,是一个返回值是 Promise 的函数类型) 假设有一个数组 tasks: Task[](每一项都是一个 Task...需要注意的几点: 无论每个Task是成功还是失败,它都不能阻断下一个Task的执行 最后的then需要把每个Task的执行结果"决议"出去 对策: 每一个Task外层包装一层Promise,捕获Task...() ).then(() => resultList); } 改进 其实Promise的链式操作是可以传递值的,所以可以利用这个特性,省去中间变量, 代码如下: function execute(tasks

    1.3K20

    Docker是啥?

    Docker从狭义上来讲就是一个进程,从广义上来讲是一个虚拟容器,其实更专业的叫法是应用容器( Application Container ),Docker进程和普通的进程没有任何区别,它就是一个普通的应用进程...能干些啥? 为啥要用Docker?这要从目前软件行业的痛点来讲起 1、软件更新发布及部署低效,过程繁琐且需要人工介入,2、环境一致性难以保证,3、不同环境之间迁移成本太高。...所以, Docker 能干啥,总结如下: 构建容易分发简单 隔离应用解除依赖 快速部署测完就销 Docker是个进程级的轻量化虚拟机,和传统虚拟机有啥区别呢?...Docker是个啥架构?底层又是用的啥技术? 前面说了那么多,始终还是雾里看花。下面就详细介绍一下技术架构,底层又是用的啥技术来实现上述那么多优点的? Docker技术架构图: ?...,是对上面这三项技术做一个封装。

    2K20

    Task是啥?

    Task是啥? VxWorks的Task,也就是任务,是系统里最基本的执行单元,类似于其它操作系统的Thread(线程)。现代的RTOS基本都通过提供一个多任务环境来支撑上层的应用程序。...从代码来看,每一节的地位平等,没有轻重缓急的概念,而真实世界里,每一节的重要程度可能是有区别的。也就是说,这种代码结构,不具备抢占能力,每一节必须等到被轮询时,才有可能去执行。...而我们的真实世界,本身是一个并行的世界,许许多多事件都是同时在发生的。在模拟真实世界的软件世界里,大量的场景也是更适合于用多任务来实现,例如下图: ?...TCB里记录的信息是任务的Context(上下文): 任务的PC指针 CPU寄存器 协处理器的寄存器(可选) 标准IO的分配情况 延时计数器 时间片计数器 内核控制结构 信号量回调函数 任务的私有环境变量...这正是: 任务是执行单元,组成有TCB和栈。 多任务并发执行,上下文快速切换。

    2.5K20
    领券