为什么这段代码不能打印任何内容?
预期结果应该是异步结果是:2
。但它是0。
"use strict"
// run consoleLogPromise
consoleLogPromise( PromiseAChangeCount() );
// a utility which will always console log any promise
async function consoleLogPromise(callback) {
//const res = await callback(); TypeError: callback is not a function
const res = await callback;
console.log("async result is: ", res);
}
// a promise returning function
async function PromiseAChangeCount() {
let count = 0;
await setTimeout(() => {
count = 2
}, 200);
return count;
}
最佳答案
你必须做这样的事情。返回 PromiseAChangeCount
的 promise 它解析 setTimeout
中的值,然后就可以在consoleLogPromise
里面等待了
"use strict"
// run consoleLogPromise
consoleLogPromise(PromiseAChangeCount());
// a utility which will always console log any promise
async function consoleLogPromise(callback) {
//const res = await callback(); TypeError: callback is not a function
const res = await callback;
console.log("async result is: ", res);
}
// a promise returning function
async function PromiseAChangeCount() {
let count = 0;
return new Promise((resolve, _) => {
setTimeout(() => {
count = 2;
resolve(count)
}, 200);
})
}
关于javascript - 如何控制台记录 promise ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66453500/