3 回答
TA贡献1784条经验 获得超9个赞
但是,当我想在承诺中使用它时
你永远不应该在executor中创建另一个new PromisePromise 。相反,调用sleep周围函数内的函数f(您已经标记为async,大概是使用await关键字):
async function f(filename) {
await sleep(1000);
return new Promise((resolve, reject) => {
/* rest of function */
});
}
您的问题也是该(resolve, reject) => {…}函数不是async,因此尝试在await内部使用存在语法错误(在严格模式下),并且还可能导致有关.sleep之后的意外令牌的错误消息await。
TA贡献1155条经验 获得超0个赞
您好尝试使用下面的代码在返回代码中添加异步,因为您在返回中使用等待
function sleep(ms) {
return new Promise((resolve) => {
console.log('inside sleep');
setTimeout(resolve, ms);
});
}
function f(filename) {
return new Promise( async(resolve, reject) => {
await sleep(7000);
/*
rest of function
*/
});
}
TA贡献1834条经验 获得超8个赞
尝试将函数 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
*/
});
}
添加回答
举报