在开始执行下一个函数之前,我已经使用.done()
来确保函数完全执行。我从Ajax那里借用了这个想法。但它没有用。我一直收到错误消息done()
不是一个函数。
done()
仅适用于Ajax吗?如果是的话,我怎么能实现我的愿望。
document.onreadystatechange = function () {
if (document.readyState === "complete") {
//do somethings
}
}
//This must be completely executed before addNu()
$( "#mybutton" ).click(function() {
//Do some things
}).done(addNu());
function addNu() {
//do some things
}
请注意,这些脚本都不是异步的。每个必须在运行下一个
之前完成答案 0 :(得分:0)
为什么你不在.click事件结束时调用该函数?
document.onreadystatechange = function () {
if (document.readyState === "complete") {
//do somethings
}
}
//This must be completely executed before addNu()
$( "#mybutton" ).click(function() {
//Do some things
addNu()
});
function addNu() {
//do some things
}
答案 1 :(得分:0)
不幸的是, [ForeignKey("UserId")]
[MaxLength(12, ErrorMessage = "You Have Exceed The Max length Of User ID which is 12 Character!")]
[RegularExpression("[0-9]{2}-[0-9]{5}-[123]{1}|[0-9]{2}-[0-9]{7}-[123]{1}", ErrorMessage = "Invalid Id,It should [xx]-[xxxxx]-[x] or [xx]-[xxxxxxx]-[x]")]
[Display(Name = "User ID")]
public string UserId { get; set; }
方法保留给从AJAX请求返回的promise。
您可以通过创建不需要AJAX的自己的JS Promise来实现相同的结果。
一个展示承诺如何运作的好网站https://scotch.io/tutorials/javascript-promises-for-dummies
答案 2 :(得分:0)
我已经完成了这里给出的解决方案和参考规定。没有用,因为这些脚本既不是ajax也不是async。 我这样解决了:
document.onreadystatechange = function () {
if (document.readyState === "complete") {
//do somethings
}
}
//This must be completely executed before addNu()
$( "#mybutton" ).click(function() {
//Do some things
//Check if completely done e.g.
length = $('img').length;
if (!length) {
addNu();
}
});
function addNu() {
//do some things
}