易理解的Promise封裝
//promise英文中叫做承諾
//成功resolve 失敗reject 正在過程中 pending 沒人接的時候
var obj = {
status: '',
value: ''
}
function Apromise(fn) {
obj.status = 'pending'
obj.value = ''
function resolve(value) {
if (obj.status === 'pending') {
obj.status = 'resolve'
obj.value = value
}
}
function reject(value) {
if (obj.status === 'pending') {
obj.status = 'reject'
obj.value = value
console.log(456456);
}
}
console.log(123123);
fn(resolve, reject)
}
Apromise.prototype.then = function (resolve, reject) {
if (obj.status === 'resolve') {
resolve(obj.value)
}
if (obj.status === 'reject') {
reject(obj.value)
}
}
let p = new Apromise((resolve, reject) => {
//resolve('1')
reject('2')
}).then(res => {
console.log(res)
}, err => {
console.log(err)
})
例項化promise:相當於如果有成功的條件就把function Apromise中的成功函式放到最下面進行執行
.then:相當於把then中的函式放入Apromise.prototype.then中進行根據之前設定的狀態執行輸出(obj.value)
總結 沒看原始碼現在感覺就是形參實參的來回撥用 沒啥的
相關文章
- jsonp的promise封裝JSONPromise封裝
- jsonp promise 封裝JSONPromise封裝
- 分享:用promise封裝ajaxPromise封裝
- promise封裝wx.request()Promise封裝
- 用promise封裝一個ajaxPromise封裝
- 使用promise封裝wx.request()Promise封裝
- 原生es5封裝的Promise物件封裝Promise物件
- 簡易Dialog封裝封裝
- 應用Promise封裝Ajax實踐Promise封裝
- 小程式API進行promise封裝APIPromise封裝
- 基於Promise實現對Ajax的簡單封裝Promise封裝
- 小程式非同步介面封裝,使用Promise,改良後的。非同步封裝Promise
- 原生es6封裝一個Promise物件封裝Promise物件
- 封裝一個簡易的上傳附件方法封裝
- 5.Hibernate工具類的簡易封裝封裝
- 最簡易的網路框架封裝(新手可看)框架封裝
- 學習Promise && 簡易實現PromisePromise
- 使用Promise封裝fetch庫(增刪改查)Promise封裝
- promise的理解和使用Promise
- 封裝一個簡易版的ajax操作物件封裝物件
- AFNetworking的簡易封裝,含字典轉模型封裝模型
- 手寫簡易PromisePromise
- ES6(四)用Promise封裝一下IndexedDBPromise封裝Index
- 使用promise封裝jquery的ajax來實現async和await方式Promise封裝jQueryAI
- Promise的祕密(Promise原理解析以及實現)Promise
- 簡單理解promisePromise
- Promise原理解析Promise
- Promise原理解讀Promise
- Promise實用理解Promise
- 談談你對Promise的理解Promise
- Promise的個人理解及實踐Promise
- ES6中Promise 承諾物件封裝非同步操作解析Promise物件封裝非同步
- ES6 Promise 應用: 回撥函式方法封裝成 Promise + async/await 同步化Promise函式封裝AI
- ES6 Promise理解Promise
- ES6 promise理解Promise
- promise理解與實現Promise
- 來實現一個簡易版的 PromisePromise
- 【封裝小技巧】is 系列方法的封裝封裝