gpt4 book ai didi

javascript - Promise.all() - 如何在不返回 undefined 或 value 的情况下 resolve()

转载 作者:行者123 更新时间:2023-11-30 07:35:20 28 4
gpt4 key购买 nike

我想使用 Promise.all() 来检查一个值是否在数组中。我的问题是当在数组中找不到该值时,promise 返回 undefined,但我只想拥有在我的数组中找到的值。

var array = [1,5,10];
var values = [1,2,3,4,5,6,7,8,9,10];
var foundValues = [];

values.forEach(function(value) {
foundValues.push(isInArray(array, value));
});

Promise.all(foundValues).then(function(values) {
console.log(values) // [1, undefined, undefined, undefined, 5, undefined, undefined, undefined, undefined, 10 ]
});

function isInArray(array, value) {
return new Promise(function(resolve, reject) {
if (array.indexOf(value) > -1) {
resolve(value); //here the value is returned
} else {
resolve(); //here undefined is returned
}
});
};

编辑:问题实际上并不是关于在数组中查找值,我只是选择这个简单的例子来说明我的问题。

最佳答案

这似乎是不可能的。我会将其归档为“合理的默认设置”,因为选择加入您想要的行为非常容易,但反之则不然。

例如:

Promise.all(foundValues)
.then(function(values) {
return values.filter(function(value) { return typeof value !== 'undefined';});
})
.then(function(values) {
console.log(values) // [1, 5, 10]
});

关于javascript - Promise.all() - 如何在不返回 undefined 或 value 的情况下 resolve(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35413572/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com