// 存在異步問題
let fn = () => {
let name = '張三';
setTimeout(() => {
return name;
}, 1000);
}
console.log(fn()); // undefined
// 第一種 回調函數
let fnCallback = (callback) => {
let name = '張三fnCallback';
setTimeout(() => {
callback(name);
}, 1000);
}
fnCallback((data) => {
console.log(data);
})
// 第二種 Promise
let fbPromise = new Promise((success, error) => {
let name = '張三fbPromise';
setTimeout(() => {
success(name);
}, 1000);
})
fbPromise.then((data) => {
console.log(data);
});
// 第三種 async await
let fbAsync = async () => {
let name = '張三fbAsync';
return new Promise((success, error) => {
setTimeout(() => {
success(name);
}, 1000);
})
}
async function main() {
let abc = await fbAsync();
console.log(abc);
}
main();