云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

云服务器_2u机架式服务器_便宜的

小七 141 0

"异步函数"的概念是最新可用的JavaScript特性之一,已经被广泛采用(特别是在节点.js场景)。使用异步函数,我们可以同步运行多个JavaScript函数,而无需使用回调函数或使用'then()'链。这意味着第二个函数等待第一个函数完成。但是,要在sapwebide中使用此方法,至少需要在中添加依赖项包.json让它工作。所以我有写这个博客的冲动。另外,我还想向UI5场景中的所有早期采用者请求使用此功能。

异步函数不应与UI5组件的异步加载相混淆。

此外,异步函数使我们能够调用同步函数的事实也令人困惑。

在本博客中,我详细展示了如何使用异步函数。异步函数是JavaScript a.k.a.ecmascript 8、ES8或ES2017版本8的一部分。异步函数是使用".then"(ES6)链的更干净的替代方法。除非您的客户仍然使用IE11或更低版本,否则不应再使用回调函数(ES5)。调用异步函数的代码很容易阅读。在异步函数中,是Await语句使调用同步完成。我们必须记住JavaScript的强大之处在于它的异步处理方式;因此,我们必须有意识地使用await语句。可以在sapwebide中构建/部署异步函数,只需在包.json. 还有一个更高级的解决方案也支持其他JavaScript特性。本博客中的四个给定用例与之相关:推送通知、OData调用、超时和忙指示灯。在try/catch之后的最后一节仍然给出了WebIDE中的问题。

我对SAPUI5开发人员的最后建议在我的最后一句话中描述如下:

"我想鼓励所有的读者和领导推广使用异步函数,但是有了意识,加上WebIDE的注释,用户不能构建/部署包含finally语句的代码,"

在这里,你会看到一个非常简单的异步函数示例,它在两秒钟后显示一个警报。

在上面的示例中,你会看到两个重要的命令:"async"和"await"。在异步函数中,await命令会一直等待,直到解析返回承诺的函数。由于异步函数只能在顶层或块内声明,因此在浏览器控制台中测试异步函数的正确方法如下:

输入此.waitAndInform();测试异步函数。

为了理解异步函数的简洁性,我想将其与旧方法进行比较为了解决这个问题,

让我们首先想象一个函数,它在2秒钟后返回一个值。在下一章中,我将给出几个更为复杂和有代表性的示例,说明将要返回的承诺。

在这里,您将看到另一个异步函数的示例,与ES6变体进行比较。

正如您所看到的,新的变体较短,万云,并且ES6变体没有任何问题。但是,当你进一步阅读本博客时,你可能会更好地理解当你的应用程序变得更高级时,代码可以变得更干净。

作为本章的补充,我想比较一下异步函数和ES5变体,在这里我必须使用回调函数。

为了使ES5变体工作,我们必须声明一个替代函数'resolveAfter2Seconds'。这是因为'resolveAfter2Seconds'返回一个承诺,但在ES6之前,我们必须使用回调函数。

在我看来,自从引入承诺后,回调函数就不应该再构建了。

在上面的示例中,我经常使用一个函数,它基于超时来解析承诺。我想与大家分享4个有趣的用例,其中promise对象被返回。

您使用的外部库也可以以它返回promise的方式编写。

在任何现代浏览器中,方法通知.请求权限();将返回在用户允许推送通知后解决的承诺。

在更常见的情况下示例:浏览器等待服务器提供数据。

您可能希望构建模型.js以一种回报承诺的方式归档。这是一个从服务器接收数据的函数,它以一种返回承诺的方式编写:

我找到的让应用程序等待一秒钟的最短方法是:

这里我们使用箭头函数,但我更喜欢在引入后直接显示的方式。

在调用函数后可以停止忙碌指示灯完成。

在发表本文时,我们的新代码将无法通过WebIDE部署。您将得到下面的错误。

在刚刚构建新代码时,您将得到另一个错误:

发生这种情况是因为默认的devdependency引用了一个旧版本的grunt。我们必须在包.json. 添加以下行:

这确保WebIDE将使用版本0.15.0作为最低版本来构建应用程序。当SAP决定将版本0.15.0或更高版本作为默认版本时,由于使用了">="符号,您的应用程序将返回默认版本。

通过这种方式,您可以在WebIDE中使用异步函数。

grunt-openui5(Matthias Oßwald)的主要贡献者之一与SAP密切相关,因此我将不考虑此解决方案怀疑。

如果你想提供更多的功能,如"let",数据技术与大数据技术,箭头功能和一些计算功能。按照中所述的更高级步骤进行操作https://blogs.sap.com/2017/11/01/next-generation-javascript-in-ui5-using-sap-web-ide/。在这个博客中,虽然没有描述异步函数,但我已经通过以下三个简单的步骤对它进行了测试,结果是肯定的。我也会毫不怀疑地考虑这个解决方案。

在我的研究中,我没有发现使用上述任何解决方案有任何疑问。我宁愿选择高级解决方案,因为它解决了比第一个更常见的问题。

如果你做了以下任何一个错误的任务,你会在你的webIDE控制台中得到下面的错误,而试图建立你的项目。弹出上一段显示的错误。