how to prevent callback hell
TRANSCRIPT
![Page 1: How to Prevent Callback Hell](https://reader035.vdocuments.mx/reader035/viewer/2022081520/587bef041a28ab765a8b671b/html5/thumbnails/1.jpg)
How to PreventCallback Hell
Tianyu ZHAO
![Page 2: How to Prevent Callback Hell](https://reader035.vdocuments.mx/reader035/viewer/2022081520/587bef041a28ab765a8b671b/html5/thumbnails/2.jpg)
Self-IntroductionFrom ChinaJoined Drecom 1 year agoRails Developer
![Page 3: How to Prevent Callback Hell](https://reader035.vdocuments.mx/reader035/viewer/2022081520/587bef041a28ab765a8b671b/html5/thumbnails/3.jpg)
What is callback hell?
![Page 4: How to Prevent Callback Hell](https://reader035.vdocuments.mx/reader035/viewer/2022081520/587bef041a28ab765a8b671b/html5/thumbnails/4.jpg)
Why should we deal with it?
Hard to Understand
![Page 5: How to Prevent Callback Hell](https://reader035.vdocuments.mx/reader035/viewer/2022081520/587bef041a28ab765a8b671b/html5/thumbnails/5.jpg)
How to avoid this?
![Page 6: How to Prevent Callback Hell](https://reader035.vdocuments.mx/reader035/viewer/2022081520/587bef041a28ab765a8b671b/html5/thumbnails/6.jpg)
Name your functions
![Page 7: How to Prevent Callback Hell](https://reader035.vdocuments.mx/reader035/viewer/2022081520/587bef041a28ab765a8b671b/html5/thumbnails/7.jpg)
Define new functions
![Page 8: How to Prevent Callback Hell](https://reader035.vdocuments.mx/reader035/viewer/2022081520/587bef041a28ab765a8b671b/html5/thumbnails/8.jpg)
Use Promise object
![Page 9: How to Prevent Callback Hell](https://reader035.vdocuments.mx/reader035/viewer/2022081520/587bef041a28ab765a8b671b/html5/thumbnails/9.jpg)
Use Promise objectCreate custom getJSON function
![Page 10: How to Prevent Callback Hell](https://reader035.vdocuments.mx/reader035/viewer/2022081520/587bef041a28ab765a8b671b/html5/thumbnails/10.jpg)
Use Promise objectUse custom getJSON function
![Page 11: How to Prevent Callback Hell](https://reader035.vdocuments.mx/reader035/viewer/2022081520/587bef041a28ab765a8b671b/html5/thumbnails/11.jpg)
Use Promise objectDon’t have to do that at all (Deferred Object in jQuery 1.8+)http://api.jquery.com/category/deferred-object/
![Page 12: How to Prevent Callback Hell](https://reader035.vdocuments.mx/reader035/viewer/2022081520/587bef041a28ab765a8b671b/html5/thumbnails/12.jpg)
Use Promise + Generator
What’s Generator?
![Page 13: How to Prevent Callback Hell](https://reader035.vdocuments.mx/reader035/viewer/2022081520/587bef041a28ab765a8b671b/html5/thumbnails/13.jpg)
Use Promise + Generator
More about Promise
![Page 14: How to Prevent Callback Hell](https://reader035.vdocuments.mx/reader035/viewer/2022081520/587bef041a28ab765a8b671b/html5/thumbnails/14.jpg)
Use Promise + Generator
More about Promise
![Page 15: How to Prevent Callback Hell](https://reader035.vdocuments.mx/reader035/viewer/2022081520/587bef041a28ab765a8b671b/html5/thumbnails/15.jpg)
Use Promise + Generator
Cool Library: co (https://github.com/tj/co)
yield Promise
![Page 16: How to Prevent Callback Hell](https://reader035.vdocuments.mx/reader035/viewer/2022081520/587bef041a28ab765a8b671b/html5/thumbnails/16.jpg)
Use Promise + Generator
Cool Library: co (https://github.com/tj/co)
Promiseresolver
resolverGenerato
r.next()
Promiseresolver
![Page 17: How to Prevent Callback Hell](https://reader035.vdocuments.mx/reader035/viewer/2022081520/587bef041a28ab765a8b671b/html5/thumbnails/17.jpg)
ConclusionCallback hell is kind of the feature of JavaScriptSome people like it, some people don’t like itDecide how to handle it by oneself (simply name functions or use Promise + Generator)
![Page 18: How to Prevent Callback Hell](https://reader035.vdocuments.mx/reader035/viewer/2022081520/587bef041a28ab765a8b671b/html5/thumbnails/18.jpg)
Thank you!