letx=0;functionadd(){returnnewPromise(resolve=>{if(x===1)returnresolve(x);//這里是一個(gè)異步操作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時(shí)不會(huì)進(jìn)行異步操作?而且我不知道會(huì)有多少個(gè)add()。具體場(chǎng)景是:用戶進(jìn)入一個(gè)頁(yè)面時(shí),會(huì)觸發(fā)多個(gè)ajax,這些ajax的后臺(tái)方法里都要調(diào)一次add()去驗(yàn)證一下權(quán)限(驗(yàn)證權(quán)限是個(gè)異步操作,即setTimeout),如果驗(yàn)證過了(即X===1),那就不用驗(yàn)證直接放行,否則攔截這個(gè)請(qǐng)求。
js 怎么避免重復(fù)的異步操作(不問了,目前沒辦法后臺(tái)做到,只能改造前端了)大佬們有什么好的建議?
達(dá)令說
2019-09-25 15:45:21