gpt4 book ai didi

javascript - 如何 "bubble up"回调

转载 作者:行者123 更新时间:2023-11-30 17:27:09 26 4
gpt4 key购买 nike

在我的事件处理函数中,我需要检查某些字段是否是唯一的。为了实现这一点,我在后端使用 ajax 调用函数。

使用回调从该函数发回数据。此时我有事件处理程序:

self.searchKeyboardCmd = function (data, event) {
if (event.keyCode == 13) {

foo(function (callback) {
if(!callback){
return false // Returning only from this method. Not parent method
}
});

var a = new Eq();
a.StorageId(self.StorageTemp());
a.StartDate(self.StartDateTemp());
a.DeviceSerialNumber(self.Test());
a.DeviceId(self.DeviceTemp());
a.Issue(self.Issue())
a.IssueDesc(self.IssueDesc());
a.Quantity(self.number());
a.Project(self.Project());
a.MeUser(self.MeUser());

self.data.push(a);
$('.datepicker').datepicker({ autoclose: true, todayHighlight: true/*, language: "pl"*/, format: 'dd/mm/yyyy' });
self.Test("");
return false;
}
return true;
};

其中行:

foo(function (callback) {
alert(callback);
});

我用 ajax 调用调用这个方法:

function foo(callback) {
$.ajax({
url: "/DeviceInstance/IsUnique",
contentType: "application/json; charset=utf-8",
type: "POST",
datatype: "json",
data: JSON.stringify({ value: viewModel.Test() }),
error: function (data) {
alert("Dodanie nie powiodło się " + data);
},
success: function (data) {
callback(data);
}
});
}

此时,main 方法中的 foo 收到了正确的数据。但是我需要让 searchKeyboardCmd 知道来自 Ajax 调用的回调值的值。我在其他问题中读到我需要让 searchKeyboardCmd 接受来自 foo 调用的回调。

请把问题发给我 How do I return the response from an asynchronous call? .我整天都在阅读那个主题,但仍然一无所获

最佳答案

如果把所有依赖于回调返回的代码都放到回调中会怎么样?

foo(function (callback) {
if(callback) { // Changed this condition
var a = new Eq();
a.StorageId(self.StorageTemp());
a.StartDate(self.StartDateTemp());
a.DeviceSerialNumber(self.Test());
a.DeviceId(self.DeviceTemp());
a.Issue(self.Issue())
a.IssueDesc(self.IssueDesc());
a.Quantity(self.number());
a.Project(self.Project());
a.MeUser(self.MeUser());

self.data.push(a);
$('.datepicker').datepicker({ autoclose: true, todayHighlight: true/*, language: "pl"*/, format: 'dd/mm/yyyy' });
self.Test("");
}
});

关于javascript - 如何 "bubble up"回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24014377/

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