javascript - 为什么我的决心不等待指定的时间?
问题描述
我试图在 10 秒后调用解析,但我想它是直接调用的。
let timer = (time) => new Promise((resolve)=> { setTimeout( resolve("success"),time)});
timer(10000).then( (result) => {
alert(result)
})
解决方案
您将返回结果传递resolve()
给 setTimeout。您没有传递resolve()
给 setTimeout。
记住任何编程语言(php、javascript、C、java 等)的基本编程:
foo(bar())
// is the same as
temp = bar()
foo(temp)
所以传递resolve()
给 setTimeout 的正确方法是:
setTimeout(() => resolve("success"),time)
推荐阅读
- sql - 需要在 PIVOT 条件下获得一对多
- java - 如何在单个活动中解析两个 json 数组?
- c# - 使用 Olivetti 仿真模式的 Epson PLQ-30M (Matrix) 不会打印文本
- java - JavaFX:stage.getIcons().add() 在 JavaFX 应用程序中不起作用
- sql-server - 基于两列的展开数据表,SQL server
- python - Python 中的 buf.readUInt16LE(offset) 等价物是什么
- python - 在 Python 中的 try 子句中继续,即使引发了异常
- angular - Angular 7 从 POST 下载 PDF 文件
- c# - 无法将 .NET Core 控制台应用程序连接到 Db2 数据库
- reactjs - React redux:使用 mapStatetoProps 的多个操作,以及一个通用的 reducer