AngularJS:如何包装同步函数以使其异步

时间:2018-04-24 08:01:07

标签: javascript angularjs

我有一个同步功能(这是一个现有的工作代码,这意味着作者不希望我更改代码)现在我正在处理的任务,高级开发人员希望我等待这个同步函数返回回调或等待它在执行下一个代码之前先完成。有没有办法将现有的同步函数包装到异步函数中?

StateChangeService.doChangeState('form', {id: '123123112313'})

这是代码本身

// They don't want to change this to an async function
doChangeState: function (state, options) {
    changeToState(state, options);
}

他们不希望我在StateChangeService上更改任何内容,所以有没有办法围绕异步方法进行包装?

1 个答案:

答案 0 :(得分:2)

当然,请承诺。

asyncChangeState(state, options) {
  return Promise.resolve(doChangeState(state, options));
}
// To call it 
asyncChangeState(x, y).then(result => {...});

then中的回调只会在您的功能完成后运行。