letx=0;functionadd(){returnnewPromise(resolve=>{if(x===1)returnresolve(x);//這里是一個異步操作setTimeout(()=>resolve(x+=1),1000);})}add().then(r=>console.log(r));add().then(r=>console.log(r));add().then(r=>console.log(r));我要怎么樣保證add()在x===1時不會進行異步操作?而且我不知道會有多少個add()。具體場景是:用戶進入一個頁面時,會觸發(fā)多個ajax,這些ajax的后臺方法里都要調一次add()去驗證一下權限(驗證權限是個異步操作,即setTimeout),如果驗證過了(即X===1),那就不用驗證直接放行,否則攔截這個請求。
小白,請教各位大佬!js 怎么避免重復的異步操作(不問了,目前沒辦法后臺做到,只能改造前端了)求解答!
收到一只叮咚
2019-10-17 09:08:32