<分区>
我只想从 setTimeout
获取返回值,但我得到的是函数的完整文本格式?
function x () {
setTimeout(y = function () {
return 'done';
}, 1000);
return y;
}
console.log(x());
<分区>
我只想从 setTimeout
获取返回值,但我得到的是函数的完整文本格式?
function x () {
setTimeout(y = function () {
return 'done';
}, 1000);
return y;
}
console.log(x());
最佳答案
您需要为此使用 Promises。他们是available in ES6但可以填充quite easily :
function x() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('done!');
});
});
}
x().then((done) => {
console.log(done); // --> 'done!'
});
在 ES2017 中使用 async
/await
如果在 async
函数中会变得更好:
async function() {
const result = await x();
console.log(result); // --> 'done!';
}
关于javascript - 从 setTimeout 获取返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24928846/