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時不會進(jìn)行異步操作?而且我不知道會有多少個add()。具體場景是:用戶進(jìn)入一個頁面時,會觸發(fā)多個ajax,這些ajax的后臺方法里都要調(diào)一次add()去驗(yàn)證一下權(quán)限(驗(yàn)證權(quán)限是個異步操作,即setTimeout),如果驗(yàn)證過了(即X===1),那就不用驗(yàn)證直接放行,否則攔截這個請求。
有沒有人遇到過這個問題哈!js 怎么避免重復(fù)的異步操作求大佬指點(diǎn)!
暮色呼如
2019-09-12 20:37:44