是否有现代的函数调用方法可以在Javascript中同时支持同步和异步执行模式?

时间:2018-10-23 22:03:52

标签: javascript callback promise

我用API用JavaScript编写程序。现在,此API可用于回调,并且支持同步和异步执行模型。

API调用示例:

API.getInfo((err, info) => {
    if(err) return processError(err);
    doSomethingUseful(info);
})

我有两个API执行器-本地和远程。

本地执行程序示例:

state.info = {...};
API.getInfo = (cb) => cb(null, clone(state.info));

远程执行器示例:

API.getInfo = (cb) => doGet('/info').then(info => cb(null, info), cb)
// express transforms this query to local executor and returns answer

诀窍是API可以像这样调用自己:

API.getOtherInfo = (cb) => {
    let part1, part2;
    API.getPart1((err, data) => part1 = data);
    API.getPart2((err, data) => part2 = data);
    cb(null, {part1, part2})
}

在这种情况下,它是同步的,我希望它保持同步。

回调可以支持同步和异步执行模式。

所以现在我想使用现代的javascript,但是不幸的是,根据定义,promise是异步的。除回调外,是否有用于同步和异步执行的现代javascript方法?

0 个答案:

没有答案