首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    JS 手写: Promise

    Promise 对象用于表示一个异步操作的最终完成 (或失败)及其结果值。 # 描述 一个 Promise 对象代表一个在这个 promise 被创建出来时不一定已知的值。...# Promise 的链式调用 我们可以用 promise.then(),promise.catch() 和 promise.finally() 这些方法将进一步的操作与一个变为已敲定状态的 promise...返回一个 promise,该 promise 在所有 promise 完成后完成。并带有一个对象数组,每个对象对应每个 promise 的结果。...# Promise.any(iterable) (opens new window) 接收一个 Promise 对象的集合,当其中的一个 promise 成功,就返回那个成功的 promise 的值。...失败,那么 Promise.all 返回的 promise 对象失败 在任何情况下,Promise.all 返回的 promise 的完成状态的结果都是一个数组 Promise.all = function

    1.6K40

    实现Promise其它API

    catch catch 是 promise 实例上的方法,添加一个拒绝态的回调到当前 promise,然后返回一个新的 promise。...resolve 返回一个 Promise 对象,这样就能将该值以 Promise 对象形式使用;reject 返回一个状态为失败的 Promise 对象,并将给定的失败信息传递给对应的处理方法。...race race 也是一个静态方法,它也接受一个迭代器,返回一个 promise,一旦迭代器中的某个 promise 解决或拒绝,返回的 promise 就会解决或拒绝。...最后 Promise 是解决异步回调问题的利器,使用 promise 可以把嵌套式的函数调用写成链式调用,有利于代码的阅读,有了 promise,我们可以把很多异步函数封装成 promise 风格的函数.../util.js', { encoding: 'utf-8' }).then(data => { console.log(data); }).catch(err => { console.log

    56230

    怎么理解JS Promise

    四、Promise与异步 Promise是异步的。js异步操作是通过js的事件循环机制EventLoop实现的。...对于异步任务来说,当其可以被执行时,会被放到一个 任务队列(task queue) 里等待JS引擎去执行。...当执行栈中的所有同步任务完成后,JS引擎才会去任务队列里查看是否有任务存在,并将任务放到执行栈中去执行,执行完了又会去任务队列里查看是否有已经可以执行的任务。...总结起来js引擎对程序的执行顺序是:1。先执行同步任务的程序 2。 在执行异步任务里的微任务 3。所有微任务都执行完了后就执行异步的宏任务,但这里是一个一个宏任务去执行,不是一下子执行完。...after");//同步任务 } testFn(); 上图结果证明了上述所说的js的执行顺序 。

    12.6K30

    Promise 这个新 API 真香!

    Promise.try() 到底是何方神圣? 说白了,它就是 Promise 上的一个静态方法,像个万能启动器。...• 那如果函数本身就返回一个异步的 Promise 呢?没问题,Promise.try() 就直接用那个 Promise 的状态。 为啥我们需要这玩意儿?以前不也活得好好的? 嗯......• 调 API: fetch 本身返回 Promise,但之前的 URL 处理、参数构造啥的可能是同步的,万一出错呢?...console.log('保存成功:', result)) .catch(err =>console.error('处理失败:', err.message)); • 数据库/文件操作: 很多库的 API...(当然,具体库可能有自己的最佳实践,这只是个思路) // 假设我们有个文件操作库,它的 API 设计有点混乱 const fileOps = { readConfig(path) {

    12710

    JS中promise是什么?

    所谓的Promise,简单的来说就是一个可以存放未来才能结束的任务或者事件。 1....Promise实列有三个状态: – pending (进行中) – resolved (成功) – rejected(失败) 当要处理某个任务的时候,promise的状态是pending,任务完成是状态就变成了...3.all() 接受一个数组作为自己的参数,数组中每一项都是一个promise对象,当数组的每一个promise状态时resolved时,all方法的状态才会变成resolved,有一个变成rejected...5finally() 他是不管promise时什么状态都会执行的都会去执行的,他不接受任何的参数。 Promise的优点: – 对象的状态不受外界的影响,只有异步的操作结果才能改变他的状态。...– 一旦状态改变就不会在变,任何时候都可以得到这个结果,就如他的名字一样promise(承诺)。 Promise的缺点: – 无法去取消promise,只要创建就会执行,无法中途去终止。

    4.4K10

    【Web前端】实现基于 Promise 的 API:alarm API

    Promise 是处理异步操作的重要工具。它使得代码更加清晰、可读,并且能够有效地避免回调地狱。 1. 什么是 Promise?...Promise 是一种用于表示异步操作最终完成(或失败)及其结果值的对象。它可以处于以下三种状态之一: Pending(待定):初始状态,既不是成功,也不是失败。...Promise 提供了 ​​.then()​​ 方法,用于指定成功和失败的回调函数,从而允许链式调用。...实现 alarm API 现在,我们来实现一个简单的 alarm() 函数,它将返回一个 Promise 对象。在这个函数中,我们将使用 setTimeout() 来模拟闹钟功能。...返回值: 最终,该函数返回一个新的 Promise 对象,可以在未来某个时刻被解决或拒绝。

    22900
    领券