场景: 页面初始化的时候执行了一个异步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 的角度来说,你还是需要及时更新,告知用户状态,避免等太久没响应。
11 回答1.3k 阅读
3 回答965 阅读✓ 已解决
2 回答961 阅读✓ 已解决
3 回答951 阅读✓ 已解决
2 回答649 阅读
3 回答973 阅读
3 回答971 阅读