题目描述
多次调用promise模拟发送请求,只返回最后一个结果
题目来源及自己的思路
面试的一个题,没写出来
相关代码
粘贴代码文本(请勿用截图)
// 发送请求,只获取最后一次的结果,之前promise没完成的话就取消
function wrapper(fn) {
// your code
}
let count = 0
function sendRequest() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve(++count)
})
})
}
let newWrap = wrapper(sendRequest)
newWrap().then(console.log)
newWrap().then(console.log)
newWrap().then(console.log) // 3
这题前面取消的话最后执行的就应该是返回1而不是3,不过仅仅是类似于节流或者防抖的区别,节流就应该是返回3,防抖就应该是返回1
你看下这样的话是否符合题意