promise的含义(面试题)
1.Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。
2.所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。Promise 提供统一的 API,各种异步操作都可以用同样的方法进行处理。
promise对象的特点
1.Promise对象代表一个异步操作,有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)。
2.对象的状态不受外界影响,一旦状态改变,就不会再变,任何时候都可以得到这个结果.
3.一般在网络请求那块会用到promise对象(解决回调地狱)
Promise 封装 ....
1. 功能的主要代码逻辑 都放到 promise里边
2. 功能执行的结果 通过 resolve() 和 reject() 传递结果
3. 函数需要返回一个Promise 实例
1 function ajax(url, type, data){ 2 return new Promise((resolve, reject) => { 3 let xhr = new XMLHttpRequest(); 4 xhr.open('get', url); 5 xhr.send(); 6 xhr.onreadystatechange = function(){ 7 if(xhr.readyState !== 4){ 8 return; 9 } 10 if(xhr.status == 200){ 11 resolve(xhr.responseText) 12 }else{ 13 reject('失败') 14 } 15 } 16 }) 17 } 18 19 ajax('http://localhost:3000/posts').then(result => { 20 console.log(result); 21 }) 22 23