我已经在我的应用程序中使用ES6和ES7功能(感谢Babel) - 包括移动和网络.
第一步显然是ES6级别.我学到了很多异步模式,承诺(很有前途),生成器(不确定为什么是*符号)等等,其中,Promises非常适合我的目的.而且我一直在我的应用程序中使用它们.
这是我如何实现基本承诺的示例/伪代码 -
var myPromise = new Promise(
function (resolve,reject) {
var x = MyDataStore(myObj);
resolve(x);
});
myPromise.then(
function (x) {
init(x);
});
Run Code Online (Sandbox Code Playgroud)
随着时间的流逝,我碰到ES7的功能,并将它们作为一个ASYNC和AWAIT关键字/功能.这些结合起来有很大的奇迹.我已经开始取代我的一些承诺了async & await.它们似乎为编程风格增添了很多价值.
同样,这里是我的async,await函数看起来像的伪代码 -
async function myAsyncFunction (myObj) {
var x = new MyDataStore(myObj);
return await x.init();
}
var returnVal = await myAsyncFunction(obj);
Run Code Online (Sandbox Code Playgroud)
保持语法错误(如果有的话),他们两个做同样的事情是我的感觉.我几乎能够用异步替换我的大部分承诺,等待着.
我的问题是,为什么异步,等待Promises做类似的工作?async,等待解决更大的问题吗?或者它只是回调地狱的另一种解决方案?正如我之前所说,我能够使用Promises和Async,Await来解决同样的问题.是否存在Async Await解决的具体内容?
附加说明:我一直在我的ReactJS项目和节点模块中广泛使用Async,Awaits和Promises.ReactJS特别是早期的鸟类,并采用了很多ES6和ES7功能.