从集合中的诺言中返回列表

2020-08-13 12:22发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我有一个集合,我在其中使用String Target填充规则中的项目

 {
 "标题":" AttachedDocumentsPage",
 "控件":[
 {
 "部分":[
 {
 " EmptySection":{
 " FooterVisible":false
 },
 " ImageCell":{
 " Image":" {{#Property:_path}}",
 " ImageIsCircular":否,
 "字幕":"字幕",
 "标题":" {{#Property:_path}}"
 },
 "布局":{
 " LayoutType":" Horizo​​ntalFit"
 },
 " Target":"/DOEDocumentMonitoring/Rules/GetImages.rule.js",
 "可见":是的,
 " _Name":" SectionImageCollection0",
 " _Type":" Section.Type.ImageCollection"
 }
 ],
 " _Name":" SectionedTable0",
 " _Type":" Control.Type.SectionedTable"
 }
 ],
 " _Name":" AttachedDocumentsPage",
 " _Type":"页面"
 }
 

我的规则代码如下

导出默认功能GetImages(clientAPI){
 console.log("获取图像")

/*返回[
 {
 " _path":"/data/user/0/gov.doe.document.monitoring/files/test.png",
 " _name":" test.png",
 " _extension":" .png"
 }
 ] */
 const fileSystemModule = require(" tns-core-modules/file-system");
 const document = fileSystemModule.knownFolders.documents();

 返回document.getEntities()。
 然后((实体)=> {
        //实体是包含文档文件和文件夹的数组。
         var images = new Array();
         Entity.forEach((实体)=> {
             如果(entity._extension!=未定义&&(entity._extension ==" .png" || entity._extension ==" .jpg")){
             images.push(实体)
             }
         });
         console.log(" IMAGES",图片)
         返回图像;
 })。catch((err)=> {
        //无法获取文件夹的内容。
         console.log(err.stack);
 });
 }
 

因此,已注释掉的返回结果很好。 问题是,当在promise中获取数据时,看似可以获取项目数,但不能获取项目本身的数据。 我的代码这里有问题吗?

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我有一个集合,我在其中使用String Target填充规则中的项目

 {
 "标题":" AttachedDocumentsPage",
 "控件":[
 {
 "部分":[
 {
 " EmptySection":{
 " FooterVisible":false
 },
 " ImageCell":{
 " Image":" {{#Property:_path}}",
 " ImageIsCircular":否,
 "字幕":"字幕",
 "标题":" {{#Property:_path}}"
 },
 "布局":{
 " LayoutType":" Horizo​​ntalFit"
 },
 " Target":"/DOEDocumentMonitoring/Rules/GetImages.rule.js",
 "可见":是的,
 " _Name":" SectionImageCollection0",
 " _Type":" Section.Type.ImageCollection"
 }
 ],
 " _Name":" SectionedTable0",
 " _Type":" Control.Type.SectionedTable"
 }
 ],
 " _Name":" AttachedDocumentsPage",
 " _Type":"页面"
 }
 

我的规则代码如下

导出默认功能GetImages(clientAPI){
 console.log("获取图像")

/*返回[
 {
 " _path":"/data/user/0/gov.doe.document.monitoring/files/test.png",
 " _name":" test.png",
 " _extension":" .png"
 }
 ] */
 const fileSystemModule = require(" tns-core-modules/file-system");
 const document = fileSystemModule.knownFolders.documents();

 返回document.getEntities()。
 然后((实体)=> {
        //实体是包含文档文件和文件夹的数组。
         var images = new Array();
         Entity.forEach((实体)=> {
             如果(entity._extension!=未定义&&(entity._extension ==" .png" || entity._extension ==" .jpg")){
             images.push(实体)
             }
         });
         console.log(" IMAGES",图片)
         返回图像;
 })。catch((err)=> {
        //无法获取文件夹的内容。
         console.log(err.stack);
 });
 }
 

因此,已注释掉的返回结果很好。 问题是,当在promise中获取数据时,看似可以获取项目数,但不能获取项目本身的数据。 我的代码这里有问题吗?

付费偷看设置
发送
2条回答
1楼 · 2020-08-13 12:57.采纳回答

Hi

从getEntities函数返回的每个实体都是Folder和File对象。 它们不适合用作绑定数据。

在将新对象推送到images数组之前,应创建要使用的属性的副本。

例如

//执行以下操作:
 images.push({
   " _extension":entity._extension,
   " _name":entity._name,
   " _path":entity._path
 });

//不要这样做:
 images.push(entity);

 
野沐沐
2楼-- · 2020-08-13 13:11

Hi Ming,

谢谢,这很成功。

最诚挚的问候,

布莱恩·戴维·亚松森

一周热门 更多>