iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 10
0

Promise

我們在做線上相簿需要向資料庫要資料,以往的做法會使用XMLHttpRequest,或者jQuery 的.ajax()功能,在ES6中新增了一個原生的 object 叫 Promise來處理 JSON API 及 AJAX 的工作。

Promise 有「承諾」的意思,把它想像成你答應別人某件事情,那麼這件事情在承諾當下到無止境的未來之間,一定會發生。(怎麼突然有如詩般的美感XD)

Fetch

而 Fetch API 是一個新增的原生 web API,它的作用和 XMLHttpRequest相同,而且更簡單使用。

Fetch API 的值是一個 promise. JavaScript 是非同步,它不會等回傳資料回來,而是會立刻執行後面的程式。Promise 用處在設一個 trigger,不管是成功或失敗,在收到資料後能執行指定的動作。

const promise = fetch(input[, init]);

input 是我們要取得的目標
init 是一些設定選項,如 method, headers, body 等等。

promise
.then(response => response.json())
.then(data => {
	console.log(data);
});

Promise 在收到回傳資料後可以用 .then() 串接功能,首先要做的是把收到的 JSON string 轉換成 JSON object response => response.json();.

然後這個 JSON 值就以 data 的變數名稱,使用在我們自訂的程式中。


上一篇
ES6 (2)
下一篇
ES6 (4)
系列文
如何在前端開發流程中加入使用者經驗設計 - 以線上相簿為例30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言