是否可以使用Javascript等待已发送但尚未解决的承诺?
async function doStuff(nth) {
setTimeout(() => console.log(nth), 2000);
}
async function waitForMe(prom, callback, nth) {
await prom;
await callback(nth);
}
const v = doStuff(1);
waitForMe(v, doStuff, 2);
以上代码并行执行;对于我的问题,用户可以在运行时在完成之前再次调用doStuff,并且必须按顺序执行。
答案 0 :(得分:3)
你不能这样吗?
function doStuff(nth) {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log(nth);
resolve("done");
}, 2000);
});
}
async function waitForMe(prom, callback, nth) {
await prom;
await callback(nth);
}
const v = doStuff(1);
waitForMe(v, doStuff, 2);