Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf ·...

106
Intro to Javascript Promises Mark Zhang

Transcript of Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf ·...

Page 1: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Intro to Javascript PromisesMark Zhang

Page 2: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex
Page 3: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Technology that brings transparency to complex systems

Page 4: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Strategic Investors

Page 5: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Come work with us!

●●●●

Page 6: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Outline

●●●●

Page 7: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

What are Promises?

Page 8: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Promises are a way of dealing with eventual values.

Page 9: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Immediate vs Eventual Values

Page 10: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Immediate Values

Page 11: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Immediate Values

Page 12: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Immediate Values

Value immediately available

Page 13: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Eventual values aren’t available immediately.

Page 14: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Eventual Values

Page 15: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Eventual Value (State Machine)

Not Ready

Error Ready

Page 16: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Eventual Values

When getData() finishes, the data isn’t ready yet.

Page 17: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Eventual Values

DOESN’T WORK!!!

Page 18: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Eventual Values

No way to get ‘hello’ here.It’s not available yet.

Page 19: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

We need some way to handle eventual values once they’re ready.

Page 20: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

One approach is to assign a callback function to handle the value

when it’s ready.

Page 21: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Callbacks

Page 22: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

This is known as continuation-passing style (CPS).

Page 23: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

A better approach is to use Promises.

Page 24: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Promises capture the notion of an eventual value in an object.

Page 25: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Eventual Value (State Machine)

Not Ready

Error Ready

Page 26: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Promise (State Machine)

Pending

Rejected Resolved

Waiting for value to be ready

with an error with the value

Page 27: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

CPS Callbacks handle eventual values. Promises ARE eventual values.

Page 28: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

When getData() finishes, the eventual value isn’t ready yet.

Page 29: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

But we can return the eventual value itself as a Promise!

Page 30: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex
Page 31: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Promises

Attach a handler to the Promise.

Page 32: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Promises

This is run when Promise is resolved.

Page 33: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

So far...

●●

Page 34: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Exercise 1

Page 35: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Exercise 1

Page 36: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Promise API Deep Dive

Page 37: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Outline

●●●●

Page 38: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Promise.then()

Page 39: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Promise.then()

Page 40: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

then(successHandler, errorHandler)

Page 41: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Pending

Rejected Resolved

Waiting for value to be ready

with an error with the value

successCallback is runerrorCallback is run

Page 42: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Example

‘5’ is printed

Page 43: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Example

‘failure’ is printed

Page 44: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Promise.then returns another Promise.

Page 45: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex
Page 46: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

This returns another promise, which is resolved when multiplyByTwo returns.

Page 47: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex
Page 48: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex
Page 49: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex
Page 50: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

You can chain handlers with “then”.

Page 51: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex
Page 52: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex
Page 53: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Return a promise

Page 54: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

What you expect...

Return a promise

Resolved with a promise.

val is a promise

Page 55: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Mirrors behavior

Page 56: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

val = 10

Page 57: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

You can return a Promise in a successHandler, and the next “then”

will receive the resolved value.(MAGIC!)

Page 58: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Useful for multi-step fetches

Page 59: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Summary of then

●●

Page 60: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Promise.catch()

Page 61: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Promise.catch()

Page 62: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

catch(errorHandler) is the same as then(undefined, errorHandler)

Page 63: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

If a Promise is rejected, all then’s are skipped until the next catch.

Page 64: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex
Page 65: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

After a catch, the promise chain recovers.

Page 66: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex
Page 67: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex
Page 68: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Summary of catch

●●

Page 69: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Exercise 2

Page 70: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Exercise 2

Page 71: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Promise.all()

Page 72: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Promise.all()

Page 73: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex
Page 74: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Many more Promise functions in libraries like Bluebird or Q.

Page 75: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Promise constructor

Page 76: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Promise constructor

Page 77: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Constructor takes executor function:function (resolve, reject) { … }

Page 78: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex
Page 79: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex
Page 80: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Resolves promise once eventual value is ready.

Page 81: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Implementing getWithPromise

Page 82: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex
Page 83: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex
Page 84: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex
Page 85: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex
Page 86: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex
Page 87: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex
Page 88: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex
Page 89: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex
Page 90: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Summary

●●●●

Page 91: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Why are Promises cool?

Page 92: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Promises are more flexible than CPS.

Page 93: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

When the eventual value is resolved...

Page 94: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

When the eventual value is resolved...

Page 95: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

When the eventual value is resolved...

● ●

●●●

Page 96: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

When the eventual value is resolved...

● ●

●●●

With sufficiently complex callbacks, you can technically do everything you can with Promises.

Page 97: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

As situations grow complex, Promises produce cleaner, shorter code than

CPS.

Page 98: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex
Page 99: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Use Promises for your GET and POST requests and save yourself future pain.

Page 100: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Outline

●●●●

Page 101: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Further Topics to Explore

Page 102: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Check out window.fetch for Promise-based AJAX requests.

Page 103: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Promises are supported natively, but check out Bluebird or Q for a fuller API.

Page 104: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Further topics to explore

●●●

Page 105: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Thanks!

Page 106: Intro to Javascript Promises6.148.scripts.mit.edu/2017/pages/lectures/WEBday6_jspromises.pdf · Intro to Javascript Promises Mark Zhang. Technology that brings transparency to complex

Intro to Javascript PromisesMark Zhang