<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script>
function MyPromise(execulator){
let self = this;
self.status = 'pending';
self.value = undefined;
self.reason = undefined;
function resolve(value){
if(self.status === 'pending'){
self.status = 'resolved';
self.value = value;
}
}
function reject(reason){
if(self.status === 'pending'){
self.status = 'rejected';
self.reason = reason;
}
}
execulator(resolve,reject);
MyPromise.prototype.then = function(onFulfilled,onRejected){
let self = this;
if(self.status === 'resolved'){
onFulfilled(self.value)
}
if(self.status === 'rejected'){
onRejected(self.reason);
}
}
}
let p = new MyPromise((res,rej)=>{
try{
//re('finished') 捕获到报错执行catch语句
res('finished')
}catch(ex){
rej('error')
}
})
p.then((res)=>{
console.log(res)
},(err)=>{
console.log(err)
})
</script>
</body>
</html>
参考链接:https://www.php.cn/faq/440756.html
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。