簡體   English   中英

如何使用JavaScript Promise ES6代替jQuery ajax調用?

[英]How to use javascript promises ES6 instead of jQuery ajax call?

我試圖了解Promise如何在javascript中工作,但我沒有找到明確的信息,我想知道是否有可能,因此如何使用Promise代替此代碼(等效)

$.ajax({
    type: 'post',
    cache: false,
    url: 'myfile.php',
    data: { info: info },
    datatype: 'json',

    success: function(response) {
        console.log(response);
    }
});

我之所以這樣問是因為我只想使用沒有任何框架或插件的javascript,就此而言,我對ES6的其他新功能沒有任何疑問,希望您能對我有所幫助,謝謝。

您必須使用實例化並返回Promise的函數包裝ajax調用:

 function getSomething() { return new Promise((resolve, reject) => { $.ajax({ type: 'post', cache: false, url: 'myfile.php', data: { info: info }, datatype: 'json', success: function(response) { resolve(response); }, error: function() { reject("some errors"); } }); }); } 

然后,您將如下兌現承諾:

getSomething()
    .then(response => console.log(response))
    .catch(err => console.log(err));

你可以這樣

function doAjax() {
   return $.ajax({
        type: 'post',
        cache: false,
        url: 'myfile.php',
        data: { info: info },
        datatype: 'json',
    });
}
doAjax.then(function(data) {
    // do success stuff
}).fail(function() {
    // do fail stuff
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM