Javascript 基于回调函数重复调用函数

Javascript 基于回调函数重复调用函数,javascript,ecmascript-6,Javascript,Ecmascript 6,我有以下设置: const foo = () => { bar((err,payload) => { // some stuff happens here } } 所以我需要不断地在“foo”的内部调用“bar”,直到在“这里发生了一些事情”部分出现某种结果。但很明显,在重新调用“bar”之前,我必须等待回调的结果——我该如何构造它 尝试在ES6中使用新的和 这一切都依赖于,只要该函数返回一个承诺,它就会自动以类似同步的方式运行 编辑如果该函数只支持回调,则可以将

我有以下设置:

const foo = () => {
  bar((err,payload) => {
     // some stuff happens here
  }
}
所以我需要不断地在“foo”的内部调用“bar”,直到在“这里发生了一些事情”部分出现某种结果。但很明显,在重新调用“bar”之前,我必须等待回调的结果——我该如何构造它

尝试在ES6中使用新的和

这一切都依赖于,只要该函数返回一个承诺,它就会自动以类似同步的方式运行

编辑如果该函数只支持回调,则可以将其包装成这样的承诺

function myCallbackFunctionPromise() {
    return new Promise((resolve, reject) => {
        callbackFunction((err, data) => {
            if (err) {
                reject(err);
            } else {
                resolve(data);
            }
        });
    });
}

Promissions或async/await会更简单,你有这个选项吗?bar函数不是我写的,只有回调函数……为什么要在循环中等待?是否应该在满足while循环之外的条件后执行此操作?根据询问的问题,OP似乎希望等待回调的实现,然后检查结果是否匹配。如果是这样,请重新运行它,如果不是继续运行。@BruceM刚刚编辑了一个示例,介绍了如何创建一个包装函数,将回调函数包装在一个承诺中,以使用wait语法。谢谢,这将是一个尝试-我需要学习如何使用承诺,这是一个很好的示例opportunity@BruceM令人惊叹的。很高兴它有帮助!快乐编码!!
function myCallbackFunctionPromise() {
    return new Promise((resolve, reject) => {
        callbackFunction((err, data) => {
            if (err) {
                reject(err);
            } else {
                resolve(data);
            }
        });
    });
}