资讯专栏INFORMATION COLUMN

实现一个简单的promise

keithxiaoy / 3149人阅读

1、最基本的功能:

function Promise(fn){
    this.arr = [];
    this.then = function(thParam){
        thParam(this.arr);
        //return this;
    };
    var that = this;
    function resolve(parm){
        that.arr.push(parm);
        console.log(parm)
    }
    fn(resolve);
}

var p1 = new Promise(function(resolve){   
    resolve("参数给then");
});
p1.then(function(response){
    console.log(response)
});

2、链式调用

function Promise(fn){
    this.arr = [];
    this.then = function(paramFun){
        var thenParam = paramFun(this.arr[0]);
        this.arr.splice(0,1,thenParam);
        return this;
    };
    var that = this;
    function resolve(parm){
        that.arr.push(parm);
        console.log(parm)
    }
    fn(resolve);
}

var p1 = new Promise(function(resolve){    
    resolve("参数给then");
});
p1.then(function(response){
    console.log(response) //参数给then
    return 1;
}).then(function(response){
    console.log(response)  //1
    return 2;
}).then(function(response){
    console.log(response)  //2
});

参考资料:手写一个Promise

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/105665.html

相关文章

  • JavaScript Promise启示录

    摘要:近几年随着开发模式的逐渐成熟,规范顺势而生,其中就包括提出了规范,完全改变了异步编程的写法,让异步编程变得十分的易于理解。最后,是如此的优雅但也只是解决了回调的深层嵌套的问题,真正简化异步编程的还是,在端,建议考虑。 本篇,简单实现一个promise,主要普及promise的用法。 一直以来,JavaScript处理异步都是以callback的方式,在前端开发领域callback机制...

    Juven 评论0 收藏0
  • Promise 简单实现

    摘要:简单实现前言你可能知道,的任务执行的模式有两种同步和异步。你已经实现了方法方法是一个很好用的方法。感兴趣的朋友可以自行去研究哈附上代码完整的实现个人博客链接 Promise 简单实现 前言 你可能知道,javascript 的任务执行的模式有两种:同步和异步。 异步模式非常重要,在浏览器端,耗时很长的操作(例如 ajax 请求)都应该异步执行,避免浏览器失去响应。 在异步模式编程中,我...

    dayday_up 评论0 收藏0
  • 简单实现 ES6 Promise

    摘要:实现的一个简单的如果有错误的地方,希望大家能够不吝赐教仅实现及方法最下方有完整代码开始一个对象接收的是一个这个接收两个参数当我们在内执行或的时候,就会调用内定义的和函数然后,和函数会改变的状态所以它应该是像下面这样的保存值记录状态为,为,为 实现的一个简单的ES6 Promise(如果有错误的地方,希望大家能够不吝赐教) 仅实现Promise及.then方法最下方有完整代码 开始 一个...

    zhichangterry 评论0 收藏0
  • Promise——从阅读文档到简单实现(二)

    摘要:在和方法执行的时候订阅事件,将自己的回调函数绑定到事件上,属性是发布者,一旦它的值发生改变就发布事件,执行回调函数。实现和方法的回调函数都是,当满足条件对象状态改变时,这些回调会被放入队列。所以我需要在某个变为时,删除它们绑定的回调函数。 前言 按照文档说明简单地实现 ES6 Promise的各个方法并不难,但是Promise的一些特殊需求实现起来并不简单,我首先提出一些不好实现或者容...

    dinfer 评论0 收藏0
  • [转载·JS] JavaScript Promise启示录

    摘要:近几年随着开发模式的逐渐成熟,规范顺势而生,其中就包括提出了规范,完全改变了异步编程的写法,让异步编程变得十分的易于理解。最后,是如此的优雅但也只是解决了回调的深层嵌套的问题,真正简化异步编程的还是,在端,建议考虑。 前段时间频频看到Promise这个词,今天发现腾讯AlloyTeam写得这篇很赞,遂转之。 原文链接 本篇,主要普及promise的用法。 一直以来,JavaScrip...

    Lyux 评论0 收藏0
  • [ JS 进阶 ] 异步编程 promise模式 简单实现

    摘要:为了降低异步编程的复杂性,所以。难理解请参考的误区以及实践异步编程的模式异步编程的种方法 异步编程 javascript异步编程, web2.0时代比较热门的编程方式,我们平时码的时候也或多或少用到,最典型的就是异步ajax,发送异步请求,绑定回调函数,请求响应之后调用指定的回调函数,没有阻塞其他代码的执行。还有像setTimeout方法同样也是异步执行回调的方法。 如果对异步编程...

    svtter 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<