从同一函数内部调用 Javascript 函数

Javascript calling function from inside same function

本文关键字:函数 调用 Javascript 内部      更新时间:2023-09-26

>我有一个执行多个DDBB调用的函数,所以它是异步的。

我需要调用该函数并检查它返回的 JSON 对象中的数据值(获胜者(。如果它是真的,我需要再次调用该函数,直到获胜者 == 假。

我不能使用 while,因为它不是异步的,我该怎么做?

  someFunction(function(result) {
     // if result.winner == true repeat 
  })

您可以再次调用相同的回调函数,直到条件true

someFunction(function repeat(result) {
    if (result.winner) {
        someFunction(repeat);
    }
});

查看下面的演示。

someFunction(function repeat(result) {
    document.body.innerHTML += '<br>' + result.winner;
    if (result.winner) {
        someFunction(repeat);
    }
});
var results = [true, true, true, false];
function someFunction(callback) {
    setTimeout(function() {
        callback({winner: results.shift()});
    }, (Math.random() + 1) * 1000 | 0);
}

你看过异步.js吗?它具有多个控制流异步功能。你可能想研究一下,直到,直到:

https://github.com/caolan/async#whilst

whilst(test, fn, callback)

重复调用 fn,而测试返回 true。停止或发生错误时调用回调。