Javascript 履行诺言

Javascript 履行诺言,javascript,es6-promise,Javascript,Es6 Promise,我有一个检查数组中值的函数 const arr = [10,20,30]; const check = (needle) => { return new Promise((resolve, reject) => { arr.includes(needle) ? resolve('err') : reject('err'); }) }; 在定制案例中也是如此 checkPe

我有一个检查数组中值的函数

    const arr = [10,20,30];
    const check = (needle) => {
            return new Promise((resolve, reject) => {
                arr.includes(needle) ? resolve('err') : reject('err');
            })
        };
在定制案例中也是如此

checkPermissionByRole(100)
            .then(val => console.log(val))
            .catch( err => console.log(err)) // gives 'err' as expected 
但我想做点像

const arr = [10,20,30];
const second = [40,50,60];

const check = (needle) => {
                return new Promise((resolve, reject) => {
                    arr.includes(needle) ? resolve('err') : // call check again but with another array to check in
                })
            };

如果一个承诺给了我一个被拒绝的值,请使用给我一个承诺的相同函数(和相同参数)再次检查它,但是列表/数组(
arr
one)应该是
second
,而不是
arr
。我想我可以用一个承载结构来完成,如果不行,给我一些面包思考一下

如果你想检查两个数组中的任何一个是否包含
指针
,你可以:

(arr.includes(needle) || second.includes(needle)) ? resolve('err') : reject('err');
试试这个:

const arr=[10,20,30];
常数秒=[40,50,60];
常量检查=(指针)=>{
返回新承诺((解决,拒绝)=>{
包括(针)和解决(“错误1”)||
第二,包括(针)和解决('err2')| |拒绝('err');
})
};

这是一种比携带更简单的好方法。嗯,看起来还可以,但我在一个问题中发布的内容是否合理?因为我想在“两者之间”做出一些逻辑。如果在第一排中找不到
指针
,则检查它的方法非常笨拙且难以阅读。请参阅hsz答案。为什么您要推荐一个绝对没有异步的函数?@JaromandaX,因为这只是一个简化的例子