我已经在我的应用程序中使用了ECMAScript 6和 ECMAScript 7 特性(感谢 Babel)——移动和网络。
第一步显然是达到 ECMAScript 6 级别。我学习了许多异步模式、promise(确实很有前途)、生成器(不知道为什么是 * 符号)等等。其中,promise 非常适合我的目的。我一直在我的应用程序中使用它们很多。
这是我如何实现基本Promise的示例/伪代码-
var myPromise = new Promise(
function (resolve,reject) {
var x = MyDataStore(myObj);
resolve(x);
});
myPromise.then(
function (x) {
init(x);
});
随着时间的流逝,我碰到的ECMAScript来到7层的功能,并把它们作为一个ASYNC
和AWAIT
关键字/功能。这些结合起来创造了巨大的奇迹。我已经开始用async & await
. 它们似乎为编程风格增添了巨大的value。
同样,这里是我的 async, await 函数的伪代码 -
async function myAsyncFunction (myObj) {
var x = new MyDataStore(myObj);
return await x.init();
}
var returnVal = await myAsyncFunction(obj);
把语法错误(如果有的话)放在一边,我觉得它们都做完全相同的事情。我几乎可以用 async,await 代替我的大部分Promise。
当 Promise 做类似的工作时,为什么需要 async,await?
async,await 是否解决了更大的问题?或者它只是回调地狱的不同解决方案?
正如我之前所说,我可以使用 promises 和 async,await 来解决同样的问题。async await 有什么具体解决的吗?
补充笔记:
我一直在我的 React 项目和 Node.js module中广泛使用 async、await 和 promises。React 尤其是早期的鸟儿,并采用了许多 ECMAScript 6 和 ECMAScript 7 特性。