jQuery Promise等待tp迭代一个Item的数组,如果找到item则返回

时间:2019-03-22 14:57:59

标签: javascript jquery promise

我一直试图在另一个功能之后执行一个功能。

功能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之前等到数组中的所有项目都被迭代,以便我可以打印未找到的项目或打印找到的项目

0 个答案:

没有答案