我目前正在使用 3 个 ajax 调用方法(其中 3 个正在连续执行)。我必须在第二个 ajax 调用和第三个 ajax 调用之间有一个时间延迟。如果我在第二个ajax中添加“async:false”,一切都会像魅力一样工作。然而,我发现这确实是一种糟糕的做法,不应该使用。所以我决定尝试异步/等待。这是我第一次,所以运气不好。如果你们能添加一些解释以便我学习,我将非常感激。太感谢了。
//This is the second ajax method that I've been trying to use async/await
async function InsertAssignments(data) {
var insertNewData = api + "/Point/insert_data/";
await $.ajax({
type: "POST",
url: insertNewData + data,
dataType: "json",
data: data,
timeout: 30000,
success: function (data) {
$("#mainGrid").data("kendoGrid").dataSource.read();
$("#ListBox1").data("kendoListBox").dataSource.read();
$("#ListBox2").data("kendoListBox").dataSource.read();
},
error: function (xhr, status, error) {
$('#gridMessage').html(xhr.responseText).css("color", "red");
}
});
}
Run Code Online (Sandbox Code Playgroud)
然后我在某处调用 InsertAssignments(data) 。
我有 2 个不同的正则表达式匹配项,目前使用 2 个 foreach 循环来获取匹配值。但是,就目前而言,如果一个 foreach 有效,则另一个无效。
尝试 1
foreach (string dir in multiTrimmed1)
{
foreach (string dir2 in multiTrimmed2)
{
var forVal2= dir.Replace("$", "").Replace(" ", "");
var forVal3 = dir2.Replace(",", "");
var parsedParams= new ParsedMethod()
{
Value1= forVal1,
Value2 = Convert.ToDecimal(forVal2),
Value3 = Convert.ToDecimal(forVal3),
Value4 = forVal4
};
MergeAllValues(parsedParams);
}
}
Run Code Online (Sandbox Code Playgroud)
所以这里的问题是 multiTrimmed1 和 multiTrimmed2 每个都有 string[4] 。
假设 A、B、C 和 D。在我的尝试 1 中,我希望 forVal2 和 forVal3 正确地通过循环。
我的意思是,当 forVal2 是 A 时,forVal3 也是 A - 将其发送到 …