首页 > 解决方案 > 对数组的所有元素执行一个函数

问题描述

嘿伙计们,我有一个由如下元素组成的数组

var arr = ['america','france','house','paris','table','new york']

我想从我的数据库中验证是否都是州或国家或首都

这是我检查单个元素的示例代码

let isValid = await db.worldDb.verifyQuery(query);

let verified; ['state','capital','country'].includes(isValid.response)? verified = true : verified = false;

我想将上面的代码传递给数组中的所有元素并创建一个通用函数,因此如果有任何测试失败,则该函数将返回 false,但如果全部通过,则返回 true。

标签: javascriptnode.jsarraysfunctionloops

解决方案


Promise.all正是您所需要的。

var arr = ['america','france','house','paris','table','new york']

try {
    await Promise.all(arr.map(async a => {
        const isValid = await db.worldDb.verifyQuery(query);

        const verified = ['state','capital','country'].includes(isValid.response);

        if(!verified) throw new Error();
    }));
    // here is ok
} catch(e) {
    // here is not verified
}

推荐阅读