我一直试图在另一个功能之后执行一个功能。
功能1 该函数使用forEach遍历项目数组,如果在数组中找到该项目,则将返回该项目,否则应返回null
功能2 仅当第一个函数完成执行后,该函数才应执行
var data = ['Test1', 'Test2', 'Test3'];
var searchfor = 'Test6';
function function1() {
var deferred = $.Deferred();
data.forEach(item => {
if (searchfor == item) {
deferred.resolve(item);
}
})
return deferred.promise();
}
function function2() {
function1().then(function function3(result) {
if (result == null) {
alert("Sorry unable to find the user")
} else {
alert("user " + result + " has been found");
}
})
}
function2();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
在执行function3之前,我需要等到function1中的数据中的所有项目都被迭代为止。因此,如代码所示,数组中是否存在某个项目,则foreach循环中的if条件将运行并解决deferred问题,但是如果在foreach循环中未找到该项目怎么办?因此,如何在执行function3之前等到数组中的所有项目都被迭代,以便我可以打印未找到的项目或打印找到的项目