如图,finishTest函数调用getCompletionGrade函数,需要等待getCompletionGrade返回的结果,
从打印结果来看,finishTest中的async await并没有起作用,理想结果应该是打印“函数执行前、中、后”,
现在从打印的结果看,还是异步执行。已经设置了ES6转ES5和增强编译,如一些资料所说引入generator支持库
let regeneratorRuntime = require("../../utils/regenerator-runtime/runtime") 之后也是不行
问题已解决,getCompletionGrade需要 return new Promise 修改getCompletionGrade如下: // 根据传入的标准答案和用户答案,得到该空的相似度 getCompletionGrade: function (reference_answer, user_answer) { return new Promise(function (resolve, reject) { //=========微信的网络数据请求========= wx.showLoading({ title: '正在计算得分', }) wx.request({ url: "http://localhost:8080" + '/answer/getCompletionGrade', data: { reference_answer: reference_answer, user_answer: user_answer }, method: 'POST', header: { 'content-type': 'application/x-www-form-urlencoded', }, success: function (res) { console.log("函数执行中:res.data.data:" + res.data.data) if (res.data.errcode == 0) { resolve(res.data.data) // return res.data.data } else { console.log("文本相似度算法执行失败!") } }, complete: function (res) { wx.hideLoading() }, fail(res) { reject(res) } }) //=========微信的网络数据请求========= }); },
你这wx.request就是个异步方法