假设我有一个函数,它在1秒后返回输入的结果:
function slowDouble(num) {
setTimeout(() => {
return num * 2;
}, 1000);
}
现在我想调用这个函数并等待返回结果,这样我就可以对它进行其他操作了。我试图将此函数包装在Promise
中,但在执行log
语句(打印undefined
)后,结果被返回给then块:
function promisify(num) {
return new Promise((resolve) => {
var res = slowDouble(num);
resolve(res);
});
}
function promisifyTest(num) {
promisify(num).then((res) => {
console.log('then result ', res);
})
}
promisifyTest(4); // undefined
然后我试着用await
async function asyncCallToAPI(num) {
var tt = await promisify(num);
console.log('async result', tt);
}
asyncCallToAPI(3); // undefined
并得到了相同的undefined
结果。我知道这与这里问的其他问题非常相似,但我还不能解决这个问题。
https://stackoverflow.com/questions/52634278
复制相似问题