gpt4 book ai didi

javascript - 如何使用 jQuery 的 Promise 使函数不嵌套

转载 作者:行者123 更新时间:2023-12-02 18:50:34 24 4
gpt4 key购买 nike

我认为我增加了一层复杂性。这是我得到的:

;(function($, window, undefined) {
function download() {
var local = {};
local.data = {};
local.data.method = 'getMyData';
local.dataType = 'json';
local.Promise = $.ajax('myComponent.cfc', local);
local.Promise.done(PromiseDone);
local.Promise.fail(PromiseFail);
}

function PromiseDone(result) {};
function PromiseFail(myEvent) {};
})(jQuery, window);

我想做的是这样的:

;(function($, window, undefined) {
var Variables = {};
Variables.Promise = $.Deferred();

function download() {
var local = {};
local.data = {};
local.data.method = 'getMyData';
local.dataType = 'json';
Variables.Promise = $.ajax('myComponent.cfc', local);
}

Variables.Promise.done(function(result) {
});
Variables.Promise.fail(function(myEvent) {
});
})(jQuery, window);

我的目标是扁平化 JavaScript,这样我的函数就不会嵌套。

问:我的想法是否可行,或者推迟是否需要解决才能被视为完成

最佳答案

您确实增加了不必要的复杂性。 $.ajax 已经返回一个 promise ,因此没有理由创建另一个 promise :

;(function($, window, undefined) {
function download() {
return $.ajax({
data : {method:'getMyData'},
dataType: 'json'
});
}

var ajaxCall = download();

ajaxCall.done(function(result) {
// do something with result
});

ajaxCall.fail(function() {
// failed
});
})(jQuery, window);

关于javascript - 如何使用 jQuery 的 Promise 使函数不嵌套,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15866761/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com