你們週末好,天氣這是愈來愈冷了,冬季到來了。西安冬日的傳統霧霾又上演了,不過最近又限行了,但願能有點用處吧。好了今天不說什麼新的東西,把以前的坑給填一填吧。node
上篇文章的最後給你們留了一個問題,若是順序的執行多個promise,已經有同窗答對了,就是用鏈式調用。的確答案就是如此,那麼具體一點怎麼作鏈式調用呢?那麼咱們來看一個例子吧。webpack
var guid = 0; function run() { guid++; var id = guid; return new Promise(resolve => { setTimeout(function () { console.log(id); resolve(id); }, (Math.random() * 1.5 | 0) * 1000); }); } var promises = Array.from({ length: 10 }, run); Promise.all(promises)
上篇文章(上邊的例子)中咱們看到了 使用promise.all能夠把幾個promise組合起來使用,那麼若是咱們想讓這些promise順序執行改怎麼辦呢?來看答案。web
var guid = 0; function run() { guid++; var id = guid; return new Promise(resolve => { // resolve in a random amount of time setTimeout(function () { console.log(id); resolve(id); }, (Math.random() * 1.5 | 0) * 1000); }); } var promises = Array.from({ length: 10 }).reduce(function (acc) { return acc.then(function (res) { console.log(res) return run().then(function (result) { res.push(result); return res; }); }); }, Promise.resolve([]));
這裏有點頗有意思,咱們先建立了一個建立一個長度爲10的Array出來,而後呢,調用了其上的reduce方法,關鍵是這個reduce方法有意思了,傳入的初始值是個resolved的promise,而後傳入了一個function,其做用就是將這些promise都chain了起來。這樣達到了順序調用的目的,固然能夠用其餘寫法達到目的,可是使用reduce仍是有點意思的。你們有興趣了能夠本身來試試。算法
OK,以前在介紹DockerFile的時候圖表君仍是留了問題。下邊的DockerFile其實定義的是有問題的。數據庫
FROM node:4.6 MAINTAINER Aaron Chen<mail@aaronchen.cn> RUN mkdir /app WORKDIR /app COPY . /app RUN npm install EXPOSE 8080
那麼問題在哪呢?問題就是這樣的DockerFile咱們就不能利用webpack-dev-server的hot reload的特性了。這對於開發階段是至關大的效率影響的,那麼如何解決呢,也是比較容易的,咱們將代碼作成一個volume掛到容器裏就解決問題了。npm
下邊說幾句非技術的話題,技術的道路作久了,都會考慮到技術路線的問題,做爲一個年輕人圖表君並無太多的經驗,可是上週看到了池建強老師的一篇文章,說的挺好,在這裏分享給你們。promise
技術發展(這裏只談我瞭解的軟件)不外乎三條路:算法、底層和業務。能在一條路上精通,就很不錯了。而厲害的人能夠同時兼顧兩條路。三條都牛的人,蠻罕見的。微信
技術1:算法路線 架構
走算法路線,對智商的要求是高於其它路線的。但也不能說高到哪裏去了。畢竟在企業裏作算法工做,更多的是應用成熟算法,而不是本身設計算法。app
算法路線比較適合耐得住寂寞的人,由於作算法經常是站在產品的幕後,好的結果又每每須要慢慢「熬」出來。算法往高走,對基礎的要求就比較高了。不是博士出身,沒在頂尖研究機構混過,在企業裏也很難作出特別牛的成果。因此通常本科生不太建議走這個方向(固然,本科生也不用太難過,畢竟沒退學生也作出過一些驚人的成就,池建強注)。
技術2:底層路線
底層路線,是圍繞着操做系統、編譯原理、分佈式系統、數據庫、軟件工程這些理論,用各類工具搭建出酷酷的應用開發、運行環境。把各類複雜的工具跑起來,不只和諧共處,還能發揮各自的長處,彌補各自的短處,並非個簡單工做。若是能再本身開發一些好用工具,就更不簡單了。
極客、黑客範兒的人,是最適合走這條路線的。愛折騰,愛嚐鮮,崇尚開源文化,細緻縝密,是作好這一行的標籤。
運維、DevOp、雲計算、大數據、架構師,這些崗位或領域的人,可能是能呼雲喚雨的底層高手。
技術3:業務路線
大多數技術都是在業務線生存和創造價值的。若是論技術光環,這條線是比不過前兩條的,容易產生「對技術能力要求不高」的感受。從某些角度看,確實如此,但這條線也有本身獨步天下的技術,那就是複雜業務建模能力。
修煉這項能力,除了技術的通用要求外,還須要比其它路線更強的溝通能力和抽象能力。或者說,對情商的要求最高。
適合本身的纔是最好的,到底走那條路線是一個選擇問題,作出本身的選擇,並堅持的走下去。這多是漫長和痛苦的過程。好了,嘮嘮叨叨了這麼多,今天就寫到這吧,咱們下週見。
原創文章,歡迎轉發,但請標明出處。歡迎關注圖表君的公衆號,一塊兒成長。在微信中搜索 「多彩數據」 或者 「Data_Visualization」