字节前端面试面经:异步编程与Promise解析 | 前端面试题目,JavaScript面试,代码代写
在这次字节跳动的前端面试中,考察了候选人对于异步编程和Promise的理解。以下是面试中讨论的两个问题及其解答。
了解更多如何通过前端面试的技巧,或获取我们的代面服务,欢迎添加微信 leetcode-king 进行咨询。我们提供面试辅导、代码代写等全方位支持服务,助您顺利通过面试。
面试题目 1:JavaScript 异步函数与await使用 要求候选人解释以下代码的执行顺序并描述输出内容:
async function fetchDataFromBackend() {
return Promise.resolve('data');
}
const func2 = async function() {
console.log('func2 start');
console.log('func2 end');
}
const func3 = async function() {
console.log('func3 start');
const data = await fetchDataFromBackend();
console.log('func3 end');
}
const func1 = async function() {
console.log('func1 start');
await func3();
await func2();
console.log('func1 end');
}
// func1 is the main func to be called
func1()
面试题目 2:JavaScript 异步执行与Promise解析 要求候选人分析以下代码,说明执行顺序和输出:
const func = () => {
setTimeout(function(){
console.log('1');
new Promise(function(resolve) {
console.log('2');
resolve();
})
.then(function(){
console.log('3');
})
console.log('4');
}, 1000);
console.log('5');
}
// func is the main func to be called
func()