目前比較流行的異步解決方案,本質上是一個構造函數ajax
promise有三種狀態,初始的狀態都是pedding,包括成功的狀態失敗的狀態還有等待的狀態promise
咱們來經過一個例子來講明一下異步調用的問題異步
let url1 = 'http://xxx.xxx.1'; $.ajax({ url:url1, error:function (error) {}, success:function (data1) { console.log(data1); } });
那當咱們發出多個請求的時候就只能以嵌套的方式來解決函數
let url1 = 'http://xxx.xxx.1'; let url2 = 'http://xxx.xxx.2'; let url3 = 'http://xxx.xxx.3'; $.ajax({ url:url1, error:function (error) {}, success:function (data1) { console.log(data1); $.ajax({ url:url2, data:data1, error:function (error) {}, success:function (data2) { console.log(data2); $.ajax({ url:url3, data, error:function (error) {}, success:function (data3) { console.log(data3); } }); } }); } });
Promise 是一個構造函數,使用 new 操做符返回一個 promise 對象url
構造函數接收一個 excutor 函數做爲參數code
excutor 函數有兩個函數類型的參數 resolve 和 reject對象