promise函数

—通常在创建Promise的时候,在外层进行一层封装,如下所示-----------------
function runAsync(){
let p = new Promise((resolve,reject)=>{
if(/异步操作成功/){
resolve(value);
}else{
reject(error);
}
})
return p;
---------------1.2 then函数-------------
执行runAsync(),并通过then函数实现对异步结果的处理。
//情况1
runAsync()
.then(data=>{},error=>{})
//情况2
runAsync()
.then(data=>{})
注释:
then函数接收两个参数或一个参数,参数的类型都是函数。
then第一个参数中的data(函数的参数),是resolve(value)中的value值。
同理,then第二个函数中的error,是reject(error)中的error值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,关于手写实现Promise函数,其实Promise是一种异步编程的解决方案,它的本质是对回调函数的封装,可以更加优雅和简洁地处理异步操作。以下是一个简单的手写Promise函数示例: ```javascript function MyPromise(fn) { var self = this; self.status = 'pending'; self.value = null; self.reason = null; self.onFulfilledCallbacks = []; self.onRejectedCallbacks = []; function resolve(value) { if (self.status === 'pending') { self.status = 'fulfilled'; self.value = value; self.onFulfilledCallbacks.forEach(function(callback) { callback(self.value); }); } } function reject(reason) { if (self.status === 'pending') { self.status = 'rejected'; self.reason = reason; self.onRejectedCallbacks.forEach(function(callback) { callback(self.reason); }); } } try { fn(resolve, reject); } catch (e) { reject(e); } } MyPromise.prototype.then = function(onFulfilled, onRejected) { var self = this; return new MyPromise(function(resolve, reject) { if (self.status === 'fulfilled') { try { var x = onFulfilled(self.value); resolve(x); } catch (e) { reject(e); } } else if (self.status === 'rejected') { try { var x = onRejected(self.reason); resolve(x); } catch (e) { reject(e); } } else if (self.status === 'pending') { self.onFulfilledCallbacks.push(function(value) { try { var x = onFulfilled(value); resolve(x); } catch (e) { reject(e); } }); self.onRejectedCallbacks.push(function(reason) { try { var x = onRejected(reason); resolve(x); } catch (e) { reject(e); } }); } }); } ``` 以上就是一个简单的手写Promise函数的实现,它是基于回调函数的封装实现的异步编程方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值