首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    讲讲标准的 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

    52600

    什么是promise?

    大家好,又见面了,我是你们的朋友全栈君。 什么是promise? Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。...从语法上说,promise 是一个对象,从它可以获取异步操作的的最终状态(成功或失败)。...Promise是一个构造函数,对外提供统一的 API,自己身上有all、reject、resolve等方法,原型上有then、catch等方法。...Promise的两个特点 Promise 有以上三种状态,只有异步操作的结果可以决定当前是哪一种状态,其他任何操作都无法改变这个状态 Promise的状态一旦改变,就不会再变,任何时候都可以得到这个结果...const promise = new Promise((resolve, reject) => { // do something here ...

    20210

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

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

    1.4K20

    什么是Promise

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

    20320

    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(){

    2.4K10

    怎么理解JS Promise

    一、何为Promise 在MDN web docs 里面是这么解释 Promise的: Promise 对象是一个代理对象(代理一个值),被代理的值在Promise对象创建时可能是未知的。...只要我们的英语水平是初中生的水平,就可以知道 promise 这个英语单词的意思是 “承诺”。是的Promise就是“承诺” 的意思。...js异步操作是通过js的事件循环机制EventLoop实现的。...总结起来js引擎对程序的执行顺序是:1。先执行同步任务的程序 2。 在执行异步任务里的微任务 3。所有微任务都执行完了后就执行异步的宏任务,但这里是一个一个宏任务去执行,不是一下子执行完。...after");//同步任务 } testFn(); 上图结果证明了上述所说的js的执行顺序 。

    11.7K30

    什么是Promise呢?

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

    31430

    JS中promise是什么?

    Promise是异步编程的一中解决方案,最早是由社区提出的,es6中正式的将其纳入,他是一个对象,可以获取到异步的操作,他相比传统的回调函数,更加的强大和合理,避免了回调地狱。...Promise实列有三个状态: – pending (进行中) – resolved (成功) – rejected(失败) 当要处理某个任务的时候,promise的状态是pending,任务完成是状态就变成了...5finally() 他是不管promise时什么状态都会执行的都会去执行的,他不接受任何的参数。 Promise的优点: – 对象的状态不受外界的影响,只有异步的操作结果才能改变他的状态。...– 如果不设置回调函数去接受,promise内部会报错,不会映射到外部 – 处在pending(进行中)时 ,外部无法得知进展到那一步 总结: Promise最早是由社区提出的,在es6才被正式的纳入规范中...,是为了解决异步编程的一种方案 他是一个构造函数,接受一个函数作为参数,返回一个Promise实列。

    3.8K10

    什么是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.1K20
    领券