【发布时间】:2021-04-14 21:03:36
【问题描述】:
这里需要做什么 实现一个 addWithDelay() 函数,它将根据以下条件使用参数:
- 如果所有参数都是正数,它应该在 1000ms 时间范围内返回一个 Promise 包含 作为参数提供的所有数字的总和。
- 如果任何参数由负数表示,函数应返回错误消息: “错误!某些参数是负数!”使用“reject()”选项。 这是我的代码
function addWithDelay(
param1 = 633,
param2 = 345,
param3 = 986,
param4 = 234,
param5 = 532,
){
values = [param1, param2, param3, param4, param5];
var result = values.filter(function(number) {
return number < 0;
});
if (number > 0){
return Promise.resolve((param1+param2+param3+param4+param5),1000)
} else {
return Promise.reject('Error! Some parameter is a negative number!')
}
}
console.log(addWithDelay())
由于某种原因,它总是返回错误消息
【问题讨论】:
-
看看How to make a promise from setTimeout。
Promise.resolve不是合适的工具。 -
您正在尝试访问超出其范围的
number。相反,请尝试使用if (result.length) { -
看起来更好)但是没有用
标签: javascript