第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在 UI5 中對(duì)基于 promise 的 API 使用 async/await

在 UI5 中對(duì)基于 promise 的 API 使用 async/await

大話西游666 2023-06-09 15:56:02
官方 UI5 文檔建議加載一個(gè)Fragmentusing promises:Fragment.load({? ? controller: oFragmentController,? ? ? ? id: oView.getId(),? ? ? ? name: "webapp.view.HelloDialog"? ? }).then((oDialog) => {? ? oView.addDependent(oDialog);? ? oDialog.open();});我個(gè)人更愿意使用async/await代替:const oDialog = await Fragment.load({? ? controller: oFragmentController,? ? id: oView.getId(),? ? name: "webapp.view.HelloDialog"});oView.addDependent(oDialog);oDialog.open();.then這樣的代碼重構(gòu)和從-promises 到UI5 中的async/ 的轉(zhuǎn)換將如何保存?await它會(huì)導(dǎo)致一些問題嗎?
查看完整描述

2 回答

?
犯罪嫌疑人X

TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊

您可以在 UI5 中安全地使用async?,await因?yàn)樗旧鲜?Promise 的語法糖。

<Dialog id="helloDialog">在片段定義中給出,并且this作為當(dāng)前控制器實(shí)例,創(chuàng)建片段將如下所示:

this.loadFragment(自 UI5 1.93 起)

onOpenDialog: async function() {

? const dialog = this.byId("helloDialog") || await this.loadFragment({

? ? name: "webapp.view.HelloDialog"

? });

? dialog.open();

},

與Fragment.load(自 UI5 1.58 起)

// Fragment required from "sap/ui/core/Fragment"

onOpenDialog: async function() {

? let dialog = this.byId("helloDialog");

? if (!dialog) {

? ? dialog = await Fragment.load({

? ? ? id: this.getView().getId(),

? ? ? name: "webapp.view.HelloDialog",

? ? ? controller: this,

? ? });

? ? this.getView().addDependent(dialog);

? }

? dialog.open();

},

舊工廠功能sap.ui.xmlfragment已棄用并*.fragment.xml同步獲取文件。


話雖如此,如果該應(yīng)用程序針對(duì) IE11,則應(yīng)避免使用async? 。await Promiseor -able 函數(shù)只能在 IE11 中工作,因?yàn)?UI5 附帶了一個(gè) polyfill,如果尚未原生支持或完全支持,then則會(huì)應(yīng)用該 polyfill 。*Promise


查看完整回答
反對(duì) 回復(fù) 2023-06-09
?
HUH函數(shù)

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超4個(gè)贊

重構(gòu)非常簡單,您還需要做的就是將調(diào)用它的方法標(biāo)記為 as?async,這實(shí)際上是您需要進(jìn)行的唯一更改。

如果你不通過像 Babel 這樣的工具運(yùn)行你的代碼庫,你將遇到的最大的潛在問題是瀏覽器支持。最大的障礙是 IE 11,許多企業(yè)客戶仍在使用它。

onFragmentLoad: async function(oEvent) {

? const oDialog = await Fragment.load({

? ? controller: this,

? ? id: this.getView().getId(),

? ? name: "webapp.view.HelloDialog"

? });


? this.getView().addDependent(oDialog);

}


查看完整回答
反對(duì) 回復(fù) 2023-06-09
  • 2 回答
  • 0 關(guān)注
  • 253 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)