javascript - 有没有办法在没有 await 关键字的情况下调用 sleep() ?
问题描述
我想在没有关键字sleep()
的情况下调用函数。await
为了实现这一点,我尝试了另一个带有回调的包装异步函数sleepAsync(x, callback)
,但它没有用。
这是我的代码 -
function color() {
let string1 = "yellow yeelow";
console.log(string1);
let string2 = "blu glu";
console.log(string2);
let string3 = "green freen";
console.log(string3);
}
async function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms * 1000));
}
现在它可以正常工作的函数调用 -
async function fcall(loop = 2) {
for (let x = loop; x > 0; x--) {
color();
await sleep(2);
}
}
fcall(4);
上述调用方式,每次迭代等待2秒再继续。
下面的代码是sleep()
不等待 2 秒的地方 -
async function sleepAsync(x, callback) {
callback();
await sleep(x);
}
function gcall(loop = 2) {
for (let x = loop; x > 0; x--) {
sleepAsync(2, color);
}
}
gcall(4);
在这里可以做什么?我在哪里犯错了?
解决方案
你可以尝试从 npm 打包,在https://www.npmjs.com/package/sleepsleep
看到它。
推荐阅读
- python-3.x - 从 PrefetchDataset 分别访问 OrderedDict 和 TensorSpec
- c - C语言中的变量是如何堆叠到栈中的?
- azure - Azure Kubernetes - Istio 多个负载均衡器?
- django - 如何将 json 数据作为查询集对象传递给 django 模板?
- java - 如何在 JPA 查询中使用 Age()
- php - 比较时获取数组值
- angularjs - 对离子更新感到困惑
- amazon-web-services - 发送邮件后如何查看
- python - 如何解析一些我想使用 bs4 的字符串?
- wso2 - 传输错误:404 错误:在 WSO2 EI 6.1.1 中未找到