戻り値を取得したいだけですsetTimeout
が、取得するのは関数のテキスト形式全体ですか?
function x () {
setTimeout(y = function () {
return 'done';
}, 1000);
return y;
}
console.log(x());
ベストアンサー1
これにはPromiseを使用する必要があります。ES6で利用可能ポリフィル可能非常に簡単に:
function x() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('done!');
});
});
}
x().then((done) => {
console.log(done); // --> 'done!'
});
async
ES2017 では、関数内で/ を使用await
するとより便利になりますasync
。
async function() {
const result = await x();
console.log(result); // --> 'done!';
}