忽略我這個中文式英語的標題。javascript
身爲一個記性不咋地的前端渣渣,以爲平時看的一些文章太散了,特開此文做爲一種記錄,可謂好記性不如爛筆頭,也算是逼本身要常常學習。文章的日期爲最後更新時間,題目順序不分前後,但願能常常保持置頂狀態,目錄到達必定長度時會重開一篇。前端
由於個人筆記本電腦最近瓦特了,因此不得不把博客遷出來,在這裏作個記錄,方便下次查找。 java
將原來的電腦上原有的hexo目錄拷貝到新電腦,只需拷貝如下目錄:git
在新電腦安裝hexoes6
npm install -g hexo
github
安裝後進入hexo/目錄npm
安裝模塊編程
1 |
npm install |
而後從新配置githubjson
1 |
git config --global user.name "YOUR NAME" |
Authenticating with GitHub from Gitpromise
在 Git Bash 下執行以下命令,生成 SSH key
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
email爲本身的github帳號,剩下的一路回車便可。
將 SSH key 添加到 ssh-agent
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
將 SSH key 添加到 Github 帳戶
clip < ~/.ssh/id_rsa.pub
此時,SSH Key 已經在咱們的剪切板裏了。而後登陸 Github 賬號,依次點擊本身的頭像,Settings,SSH and GPG keys, Add SSH key, 在 Title 這裏輸入 Key 的label,好比 your_name - PC
,而後在 Key 裏面把 SSH Key 粘貼進去,點擊 Add SSH key 大功告成。
測試 SSH 鏈接,在 Git Bash 中敲入
ssh -T git@github.com
作完上面這些後 執行hexo deploy 大功告成
可是我仍是報錯,hexo error fatal httprequestexception encountered….
後來在https://github.com/hexojs/hexo/issues/3043 這裏找到解決方法
把repo的配置方式改一下,任何就能夠了。
1 |
deploy: |
以上方法結合了這兩篇文章:
語法:Object.assign(target, ...sources );
參數:
target:必需。可枚舉屬性複製到的對象。
…sources:必需。從其中複製可枚舉屬性的對象。
實例:
1 |
var first = { name: "Bob" }; |
看阮一峯大神的ES6-編程風格 :
對象儘可能靜態化,一旦定義,就不得隨意添加新的屬性。若是添加屬性不可避免,要使用Object.assign
方法。
1 |
// bad |
閱讀(按左到右順序): 大專欄 Day learn,day up/zh-CN/docs/Web/JavaScript/Guide/Using_promises" target="_blank" rel="noopener noreferrer">使用 Promises Promise
這兩天又看了一遍Promise的內容,以爲這個對象真的很是好用。
作個總結唄,其實在項目中已經快樂地用起來了,很方便。
它存在的意義?還不是由於javaScript是世界上最好的…不對,說錯臺詞了,應該是javaScript是單線程語言。
咱們常常爲了解決這個問題,使用的是回調函數,俗稱callback,爲了達到異步執行。好比setTimeout
,好比AJAX異步操做。
具體介紹不表,能夠看文檔。直接說使用吧。
1 |
new Promise( function(resolve, reject) {...} /* executor */ ); |
1 |
new Promise((resolve, reject) => { |
.then()
是鏈式調用,獲取上一個Promise resolve返回的對象進行操做;
.catch()
原理同then,可是是針對Promise 的reject返回的對象進行操做;
注意:在一個失敗操做(即一個 catch
)以後能夠繼續使用鏈式操做,即便鏈式中的一個動做失敗以後還能有助於新的動做繼續完成。
即鏈式調用不會由於其中一個環節失敗(reject)而中斷。
好用組合:
Promise.resolve()
&Promise.reject()
這兩個是手動建立一個已經resolve或者reject的promise快捷方法。
Promise.race()
和Promise.all()
這兩個用法同樣,其實括號內都是多個Promise對象
可是不一樣的地方在於:
Promise.all(iterable)
方法返回一個 Promise
實例,此實例在 iterable參數內全部的 promise 都完成(resolved),或參數中不包含 promise 時回調完成(resolve);若是參數中 promise
有一個失敗(rejected),此實例回調失敗(reject),失敗緣由的是第一個失敗 promise
的結果。
Promise.race(iterable)
方法返回一個 promise,一旦迭代器中的某個promise解決或拒絕,返回的 promise就會解決或拒絕。
一句話,前者若是有一個失敗,則之間返回第一個失敗(catch裏);後者只會返回第一個處理的失敗或者成功。
舉個實際可能會使用的例子:
Promise.all是很適合來解決多個Promise是用於獲取請求基本信息,好比app裏的登錄信息,ticket,版本號,它們都獲取成功後能夠接着執行可能下一步的請求。。。
Promise.race很適合容錯現象,好比接口超時:
1 |
//網絡超時寫法:Promise.race() |