2017年10月3日 星期二

Promise與jQuery筆記

Tool:Visual Studio 2015 Update 3
OS:Windows 10
ECMAScript 2015、jquery-3.2.1.js

ECMAScript新增 Promise來撰寫非同步程式碼。 若搭配jQuery來使用,可以叫用then方法來取得Promise:

$.ajax({
    type: "get",
    url: "dataAll.json"
}).then(
function (data) {
    var d = data.d;
    var r ='';
    for (var i = 0; i < d.length; i++) {
        r += `${d[i].name} , ${d[i].age} \n`;
    }
    console.log(r);
},
function (res) {
    console.log(res.statusText);
});

或者叫用Promise.resolve方法,將jQuery Deferred物件轉換成標準的Promise :

var jsPromise = Promise.resolve($.ajax({
    type: "get",
    url: "dataAll.json"
}));

jsPromise.then(function (data) {
    var d = data.d;
    var r = '';
    for (var i = 0; i < d.length; i++) {
        r += `${d[i].name} , ${d[i].age} \n`;
    }
    console.log(r);
}, function (res) {
    console.log(res.statusText);
})

沒有留言:

總網頁瀏覽量