javascript - 如何创建两个异步函数,等待 10 秒后返回 javascript 中任意数量参数的总和
问题描述
如何创建两个异步函数,其中第一个函数将等待 10 秒并返回任意数量的 number 类型参数的总和(使用扩展运算符),另一个将等待第一个函数完成并在返回值上再加 10第一个函数,最后返回输出。我很感谢任何帮助,因为这些对我来说很新……我已经试过了……
var a=0;
setTimeout(function() { Addition(); }, 10000);
async function Addition()
{
for (var i=0; i < arguments.length; i++) {
a += arguments[i];
}
return a;
}
async function secondFunction()
{
await Addition();
a = a + 10;
return a;
};
console.log(Addition(2, 3));
解决方案
您可以使用返回已解决的 Promise 和 setTimeout 的组合。在第一个异步函数中,您正在等待 Promise 被解析,这只会在 setTimeout 函数运行 10 秒后才会发生,然后它会返回resolve
参数。
async function first(...numbers) {
const result = numbers.reduce((x, y) => x + y);
await new Promise(resolve => setTimeout(resolve, 10000));
return result;
}
function second(n1) {
return n1 + 10;
}
(async () => {
const result1 = await first(10, 10, 10, 10);
const result2 = second(result1);
console.log(result2); // results in 50
})();
推荐阅读
- r - 在 R 中为小于某个时间的时间间隙添加 NA 值
- c# - C#:如何忽略来自 Tesseract 的日志?
- android-jetpack-compose - Jetpack Compose 如何使用 CursorLoader 获取全包专辑
- c# - 如何使用 Identity Windows 身份验证将“拒绝访问”页面添加到 .Net 5 WebApp
- windows - 如何将程序放入 Windows 启动
- plot - GEMTC中关于森林图的问题:如何适应学习体重
- sql - 在 NUMTODSINTERVAL() 中不能使用超过 90 分钟
- python - 划分不同字典结构的2个字典
- javascript - index.js 中定义的变量会转移到其他脚本吗?
- html - Xpath:如何通过列中的元素识别表中的行?