javascript - Javascript 无法在承诺中找到我的功能
问题描述
我想调试一个返回承诺的函数,为此我需要一个睡眠函数。我找到了这个:
function sleep(ms) {
return new Promise((resolve) => {
setTimeout(resolve, ms);
});
}
它在承诺之外使用时有效。但是,当我想在承诺中使用它时,我得到了错误,即找不到睡眠。这是我的代码:
async function f(filename) {
return new Promise((resolve, reject) => {
await sleep(1000);
/*
rest of function
*/
});
}
解决方案
尝试将函数 f 中的 return new Promise((resolve, reject) => {}) 替换为 return new Promise(async(resolve, reject) => {})。我希望它能解决你的问题
async function f(filename) {
return new Promise(async (resolve, reject) => {
await sleep(1000);
/*
rest of function
*/
});
}
推荐阅读
- java - Java 开发人员理解 C# “async/await” 模式
- javascript - 警告:请使用 `import { NavLink } from "react-router-dom"`
- r - 在 R 中将 EST/EDT 数据转换为 GMT
- node.js - Node.JS 服务器发送事件:路由在 res.end() 之后继续运行导致 ERR_STREAM_WRITE_AFTER_END 错误
- php - 尝试将我的网页连接到 MySQL 数据库
- python - Catboost预测返回错误特征在数据集中标记不同
- .net - 在 vb.net 中将时间转换为特定的 GMT
- amazon-web-services - JSON 正文可以作为 JSON 对象而不是 AWS 网关中的字符串传递吗?
- sql - 从纬度和经度对计算边界框
- html - 更改页面时导航栏项目移动到中心