实现Pormise,超级精简,一看就能明白Promise的运行原理
栏目: JavaScript · 发布时间: 6年前
内容简介:为了精简代码,下面的Promise实现中去掉了代码校验,这样方便小伙伴看到Promise的核心逻辑。ES6语法。活不多说,直接放代码有没有很简单,下面对照最典型的实用方法非小伙伴讲解一些这个简单的代码。
核心代码
为了精简代码,下面的Promise实现中去掉了代码校验,这样方便小伙伴看到Promise的核心逻辑。ES6语法。
活不多说,直接放代码
class PromiseTest{
executor = (resolve,reject)=>{};
constructor(executor){
this.executor = executor
}
then(sucess,error){
function resolve(value){
sucess(value)
}
function reject(value){
error(value)
}
this.executor(resolve,reject)
}
}
有没有很简单,下面对照最典型的实用方法非小伙伴讲解一些这个简单的代码。
代码测试和代码讲解
const promise = new PromiseTest(function(resolve, reject) {
if (true){
resolve("sucess");
} else {
reject("erorr");
}
});
promise.then(function (value) {
console.log(value)
}, function (error) {
console.log(error)
}); // => sucess
简单的归纳一下,Promise构建的时候把你传入的executor(resolve, reject){}函数缓存到返回的promise对象中,当你调用promise的then方法的时候,就是执行你写的executor(resolve, reject){}函数,并then方法中定义的两个回调函数替换替换到构建Promise时定义的executor(resolve, reject){}中的两个入参。
当然promise不会像我说的这么简单,但是核心原理就是这个样的。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
iPhone开发实战
2009-10 / 69.00元
《iPhone开发实战》全面探讨了iPhone平台的两种编程方式——Web开发和SDK编程。全书结合示例对这两种编程方式的基本流程、基本原理和基本原则给出了详细而通俗的讲解。在Web开发方面,分别介绍了三个iPhone Web库,即WebKit、iUI和Canvas,并讨论了Web开发环境Dashcode,最后阐述Web应用程序的调试。在SDK开发方面,详细描述其各种组件和功能,包括Xcode、I......一起来看看 《iPhone开发实战》 这本书的介绍吧!