【发布时间】:2020-06-23 16:12:33
【问题描述】:
我有一个名为 validityCheck() 的函数,如果用户有效则返回 valid,如果用户无效则返回 invalid。我需要从其他地方调用这个函数并在if-else 条件下使用结果。
这是函数定义(这个函数定义在一个普通的javascript库名library.js):
function validityCheck(userid, serviceid, system) {
$(document).ready(function () {
$.get("https:*******userValidation?serviceid=" + serviceid + "&userid=" + userid + "&system=" + system, function (data, status) {
console.log(data);
return data[0];
});
});
}
现在我想这样做(此代码部分在我项目的controller 中):
var validity = validityCheck($scope.userid, serviceid, 'abc');
if(validity=="VALID"){
//do something
}else{
//do something
}
我需要等到我得到数据。我想我需要使用 callback_ 或类似的东西,但我不知道该怎么做。
【问题讨论】:
-
您不需要也不应该将检查放在 $.ready 中,将其定义在主范围中,或者更好地将其公开为服务。将代码包装在 promise 中以供重用。并且不要使用 $.get,而是使用 angular $http。如果可以,请避免使用 jquery
-
@SonNguyen 实际上函数
validityCheck()是一个javascript函数并在library.js中定义,这是一个普通的javascript文件。我已经包含了那个库并且必须使用那个函数。 -
如果你打算只运行一次函数($.ready 只触发一次)而不重用它,那么很好,但你需要修改代码以供你自己使用。如果您不熟悉 Promise,目前最快的方法是将结果检查插入函数中(在 console.log(data) 之后)
-
@SonNguyen 实际上我需要在我的项目中检查它。不能在函数
validityCheck()中做到这一点
标签: javascript angularjs asynchronous