场景: 页面初始化的时候执行了一个异步fun1,但是时间有点长,假设有3s。 然后页面触发了另一个点击事件fun2,在这个事件中要等待fun1有执行结果后才继续后续。 如何实现这个功能(注意 不是在fun2中在执行一次fun1,而只是等待fun1的执行有结果)
场景: 页面初始化的时候执行了一个异步fun1,但是时间有点长,假设有3s。 然后页面触发了另一个点击事件fun2,在这个事件中要等待fun1有执行结果后才继续后续。 如何实现这个功能(注意 不是在fun2中在执行一次fun1,而只是等待fun1的执行有结果)
加个loading就可以解决,fun1执行时loading=true,执行完成后loading=false,给按钮设置disabled属性,loading=true时disabled=true
所以,你可以这么做:
let firstP
function fun1() {
firstP = someAsyncFunction();
}
async function fun2() {
await firstP;
doNext();
}
不过从 UI 的角度来说,你还是需要及时更新,告知用户状态,避免等太久没响应。
13 回答12.6k 阅读
2 回答4.9k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
7 回答2k 阅读
5 回答563 阅读
3 回答2.1k 阅读
3 回答1.2k 阅读✓ 已解决