我有如下功能:如何使用setInterval或setTimeOut同步執行?
function foo(args1, args2, retry)
{
if (retry <= 0)
return false;
var isDone = callAnotherFunction(args1, args2);
if(!isDone) {
setInterval(function() {
foo(args1, args2, retry-1);
},
2000);
}
else
return true;
}
所以我不知道,如果上面的實現是正確的。但是我需要在另一個函數中使用這個函數。並在if塊中使用上述函數來決定是否需要執行其他語句。以下是上述功能的用法。
function useIt(args1, args2)
{
// Other code
let store = function() {
if(!foo(args1, args2, 5)) {
cleanStorage(args1, args2);
return;
}
}
所以問題是在功能上useIt()
,cleanStorage()
不等待foo()
到,如果我使用setInterval
或setTimeOut
執行。那麼我該如何執行功能foo()
?請幫助我。
爲什麼你需要等待(使用'setInterval')? – suvroc
我正在使用'setInterval',在失敗的情況下我可以重試,並在重試之間添加延遲。 –
雖然你在標題中說過「同步」,但我可以看看使函數foo成爲[promise](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/ Global_Objects/Promise)這樣你就可以等待'useIt'函數中'foo'的結果 – George