データを取得する必要があり、時間がかかることがあります。 100ミリ秒以上かかると、ローダーを見せたい。 (私は長いフェッチプロセスをテストしたかったので)これはsetTimeoutと約束
sleep(ms) {
var unixtime_ms = new Date().getTime();
while(new Date().getTime() < unixtime_ms + ms) {}
}
などの機能が含まれています原因私は5秒間
fetchOptions(value, page = 0){
return new Promise((resolve, reject) => { ... });
}
getOptions(text, page = 0) {
if (this.requestTimeout) clearTimeout(this.requestTimeout);
this.requestTimeout = setTimeout((()=>{
console.log("!!");
}), 100);
this.fetchOptions(text, page)
.then(data => {
//do something
//if (this.requestTimeout) clearTimeout(this.requestTimeout);
})
.catch(e => console.log(e));
}
fetchOptions
作品をやったことです。
結果としてconsole.log
は、約束が解決された後にのみ呼び出されます。なぜそれが起こるのか、この問題を解決する方法を理解するためには本当に助けが必要です
'しばらく(新しいDate()。getTime()
tcooc
@tcoocが正しいです。あなたは、スリープ方法のタイムアウトで解決を伴う約束を使用することをお勧めします。 このようにしてください:sleep(ms){新しい解決策を返す(解決、拒否)=> {setTimeout(resolve、5000);})} – dejakob
ありがとう、それは意味をなさない。今本当に愚かな感じ: –