点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
当前,我已经编写了一个代码,该代码调用https链接并返回promise对象。 我正在使用await在异步函数中检索promise对象。 我需要写一个条件,建立一个数据库连接并将记录插入异步表中。
所有这些都应该在异步函数中发生,但是在执行相同的操作时,我会收到"错误是错误:没有光纤就无法等待"。
我需要了解为什么会出现此错误。 我非常确定这是由于异步操作而发生的,但是我不确定如何解决此问题。 下面是代码
function apiTrigger(url,protocol){ var result = {}; var http = $ .require(protocol); var输出=新的Promise(函数(解决,拒绝){ http.get(URL,function(res){ -------------- -------------- -------------- 解决(结果); } }); })。on('错误',拒绝); }); 返回输出; }; 异步函数apiCall(cb){ 尝试{ var result = await apiTrigger( '链接', 'https'); console.log("输出为" + JSON.stringify(result)); var Retrieve = result.retrievedOutput; console.log(" Printed" +检索); var message = JSON.parse(result.retrievedOutput); console.log(" message" + message.MESSAGE); if(message.MESSAGE == 1){ var connection = $ .hdb.getConnection(); var query ='插入"便携式"值(?,?,?,?,?)'; console.log("查询为" +查询); connection.executeUpdate(query,'2019-03-21',5,'MDU','INR',899); connection.commit(); } } catch(err){ console.log("错误为" + err); } }; $ .response.setBody(apiCall());
当前,当我执行此代码时,我得到"错误是错误:没有光纤就无法等待"。 预期结果是执行数据库查询。 请帮助
您正在尝试将XSJS的同步编程模型与Node.js的异步非/阻塞模型混合使用。 对于光纤,这是不可能的(可以在此处进行检查)。
在使用XSA并尝试实现新功能时(就像我假设的那样),问题是为什么您仍在使用XSJS而不是纯Node.js。 这样可以避免您现在遇到的所有问题或使用光纤的麻烦。
基本上,您需要了解的一切都可以在XS Advanced的官方《 SAP HANA开发人员指南》中找到。 我建议您看一下教程设置您的JavaScript XS Advanced中的应用程序,其中描述了设置应用程序的基本步骤(以及重要信息,即您需要使用哪些模块,例如@ sap/xsenv,@ sap/hdbext ...)以及如何访问db/HDI容器并通过服务返回一些数据。
一周热门 更多>