One-By-One Promise

Let’s define a function to simulate calling API via Promise and setTimeout():

1
2
3
4
5
6
7
var callAPI = (api, arg) => new Promise((resolve, reject)=>{ // <- callAPI() always return this promise
setTimeout(()=> {
let msg = `API "${api}" called successfully! ==> ${JSON.stringify(arg)}`
console.log(msg)
resolve(msg) // You can get msg via then(): callAPI(...).then((msg)=>{ ... })
}, Math.floor(Math.random()*1000)) // Simulate unstable network & server latency
})

Use like this:

1
2
3
callAPI("AddUser", { username: "ib", password: "ib" }).then((x)=>{
console.log("API test!")
})

Result

1
2
API "AddUser" called successfully! ==> {"username":"ib","password":"ib"}
API test!

Call Multiple APIs Simultaneously

When you have to call a lot of asynchronous APIs simultaneously, you may use Promise.all() like this::

Read More

第二十四年

原本這個週末打算來寫 code 的但完全沒心情。人生的第二十四個年頭,給自己留下一點想法紀錄,給未來的自己看看:自己成長了嗎?

這篇紀錄了我目前為止的一部分關於這個世界的想法,內容估計會得罪非常多人。如果你我有緣,看到了這篇文章,且有什麼想法得罪到你,開罵前懇請先冷靜下來,願意的話我們可以討論,畢竟很有可能邏輯錯誤的人其實是我而不是你。

我很尊敬的程式設計師唐鳳很常講的、很注重的一點:溝通。我期望自己總有一天能夠有那種邏輯與耐心與脾氣。

Read More

在學校的日子們最後的流水帳

這是我 2015 年 4 月份大學畢業前、到畢業後一小段期間寫的日記。時間的流逝好可怕。
之前一直有些顧慮,不過也擺了快兩年,覺得差不多可以放出來了。(你以為在釀酒嗎)

大腦並不擅長記住精確的事情,而且還會自己腦補。我喜歡「精確地」紀錄說過的話、發生的事情,何時何地何人何物。如果連當下都無法記錄到讓自己在以後回顧時信服的話,想想從小到大我們背誦的以為是歷史的東西:我們已經背誦過夠多小說與扭曲的事實與謊言了(新聞製造業就別提了),沒有必要再給世界留下一篇只能讓自己滿足的爛小說。

ono hiroko @ JinGuaShi [2017-03-22 水 23:40]

(File created at 2015-04-24 04:41:40)

很感傷,我真的很慶幸我進了中興。雖然有些課很廢(尤其必修)、也遇過一些爛人爛貨,但其他遇到的同學、因為各種管道認識的朋友、那大家都說漂亮但我怎麼也不覺得稱得上漂亮但確實溫腥的校園環境、各種課程與(很少參加的)活動的點點滴滴,我這輩子忘不了的。

Read More

近況小記

很久沒寫 blog。最近發生不少事情,覺得也是時候應該要花點時間來紀錄一下。

0

最近的每日作息是

  • 一~六:上班、下班、吃飯、(有心情的話)練琴、洗澡、刷 OJ、12 點左右刷牙吃藥睡覺。
  • 日: 莫名其妙超早醒來後:一半時間在昏睡中度過、剩下一半時間耍廢放空刷廢推看 RSS reader 念演算法刷 OJ 然後強迫自己玩買了還沒玩完的遊戲。
  • 作曲看心情好壞決定,這不是花一定時間就一定有固定產出的活…。

1

前陣子工作上遇到一件很難過的事:我們的產品有 web 介面與 CLI 介面,我負責 web (Angular) 另外一位負責 CLI (Go),我們要實作出邏輯一樣的功能(例如 input validator)。負責 CLI 的同事一天就寫完:而我呢寫了四天還有 bug。我想出的演算法智障到不行,根本繞遠路、複雜、沒效率又辦不到任務。當下立刻跑去請教那位同事他的思路,發現只用了三個 if statements 就解決了,我我我…

Read More

第一個月的 QML 新手踩雷筆記

沒想到作前端工程師,還真的寫到 QML 了。總之就是工作上有個新專案,我們評估應該用 QML 開發,最大的優勢當然就是前後端的開發可以分離。可以讓前端工程師把 UI 開發完,同時一邊跟客戶討論需求後,最後才進行後端業務邏輯實做。而在這過程前端也幾乎不用寫 C++(前端工程師最後卻跑去寫 C++ ,這聽起來就是搞錯了什麼。

雖然 KDE5 Plasma 桌面已經全面改用 QML 重寫、Blackberry、Ubuntu Phone 也都採用 QML 作為 GUI toolkit 使用者基數應該挺龐大的,然而目前寫了一個多月,實際在開發時還是踩到很多雷,而這些雷的原因也很雜,所以這裡來快速簡單的統整一下,希望對任何想學 QML 的新手能有一點點幫助,避免更多人成為孤獨的踩雷家。

目前我也仍是新手,這篇文章可能有謬誤,且日後可能還會有更動。

Read More