【发布时间】:2022-01-21 01:03:00
【问题描述】:
一个简单的脚本,我想要实现的是在 append 方法中推送新项目,并使用异步函数
我试图了解 then 和 catch 是如何工作的,而不是在不了解它们内部如何工作的情况下使用它们(使用 axios 或其他东西)
必须在 3 秒后执行推送
我尝试在setTimeout 中使用resolve 方法,但出现错误,因为resolve 无法识别,我正在返回一个Promise,因为我无法等待setTimeout
<script>
async function test(terms) {
let termss = await append(terms);
return [termss[termss.length - 2], termss[termss.length - 1]]
}
async function append(arr) {
var arrr = arr;
const waitFor = () => new Promise(resolve => {
setTimeout((resolve) => {
arrr.push("Taoufiq")
arrr.push("understands");
}, 3000)
});
await waitFor();
return arrr;
}
test([1, 2, 3, 9]).then((result) => {
console.log(result)
})
</script>
Ayy 帮助了解它是如何工作的?
我的预期结果是返回一个带有 ["Taoufiq", "understands"] 的数组
【问题讨论】:
-
您确实需要兑现承诺。看看at this example 看看它的实际效果。无需将
resolve传递给超时函数。它在范围内。
标签: javascript asynchronous settimeout es6-promise