在完成符合 promise/a+ 規範的**之前,我們可以先來實現乙個簡易版promise
,因為在面試中,如果你能實現出乙個簡易版的promise
基本可以過關了。
那麼我們先來搭建構建函式的大體框架
const pending = 'pending'const resolved = 'resolved'const rejected = 'rejected'function
mypromise(fn)
接下來我們來完善resolve
和reject
函式,新增在mypromise
函式體內部
functionresolve(value)
}function
reject(value)
}
這兩個函式**類似,就一起解析了
完成以上兩個函式以後,我們就該實現如何執行promise
中傳入的函式了
trycatch
(e)
最後我們來實現較為複雜的then
函式
mypromise.prototype.then = function(onfulfilled, onrejected)
if (that.state ===pending)
if (that.state ===resolved)
if (that.state ===rejected)
}
以上就是簡單版promise
實現
簡易版promise原始碼實現
首先我們先看一下promise是如何使用的 通過promise構建出來的物件有三種狀態,pending 進行中 fulfilled 已成功 rejected 已失敗 狀態只能由 pending 變為 fulfilled 或由 pending 變為 rejected 且狀態改變之後不會在發生變化,會一...
前端手寫系列 手寫簡易版深拷貝
深拷貝方式1 json.parse json.stringify obj 這種方式有很多缺點,會忽略undefined,symbol,函式,不能解決迴圈引用的問題,不能處理正則,new date 以下深拷貝只考慮了物件和陣列的情況,其餘諸如date,function,regexp都沒有考慮 簡易版深...
檔案上傳簡易版
以下是index.jsp的核心 後台servlet核心 先獲取所接收檔案要儲存的路徑 string path getservletcontext getrealpath imgs 檔案上傳需要臨時目錄 如果不指定,那麼該目錄就是tomcat temp file tempdir new file d ...