https://www.oxxostudio.tw/articles/201706/javascript-promise-settimeout.html
https://www.oxxostudio.tw/articles/201706/javascript-promise-opendata.html