Back4app使用Cloud Code Functions时报ES版本不支持async函数问题求助
问题解决方法
你出现报错的核心原因有两个:一是错误将React Native前端的Parse初始化代码放到了服务端Cloud Code中,二是Back4app的Cloud Code默认语法校验规则没有开启ES8支持,不识别async/await语法,按下面步骤修改即可:
1. 修正服务端Cloud Code代码
你上传到Back4app后台的Cloud Code文件不需要任何前端SDK初始化逻辑,只需要保留云函数定义,同时在文件顶部加注释指定ES版本即可解决语法报错,正确的服务端代码如下:
/* esversion: 8 */ Parse.Cloud.define("hello", async (request) => { console.log("Hello from Cloud Code!"); return "Hello from Cloud Code!"; });
顶部的注释会直接告知语法检测工具使用ES8版本规则校验,直接消除你遇到的async函数相关报错。
2. 确认前端代码放置位置
你之前写的Parse初始化相关代码要放到你本地的React Native项目代码中,不要上传到服务端,前端调用云函数的代码注意要放在异步函数内部,示例如下:
// 该部分代码放在你的React Native项目中,属于前端逻辑 import Parse from 'parse/react-native.js'; import AsyncStorage from '@react-native-async-storage/async-storage'; // 初始化Parse SDK Parse.setAsyncStorage(AsyncStorage); Parse.initialize('你的Back4App应用ID', '你的JavaScript KEY'); Parse.serverURL = 'https://parseapi.back4app.com/'; // 云函数调用逻辑必须放在async函数内部 const getHelloMsg = async () => { const helloFunction = await Parse.Cloud.run("hello"); console.log(helloFunction); }
内容的提问来源于stack exchange,提问作者Omar KASSARA
相关产品推荐
相关产品推荐

