版本一
1、將異步調(diào)用定義在 Promise 對(duì)象里面
let vector = new Promise(function(resolve, reject){
client.WordEmbedding(req, function (errMsg, response) {
if (errMsg) {
console.log(errMsg);
reject(errMsg)
}
resolve(response.to_json_string())
});
})
2勒叠、在云函數(shù)的 main 中 await 等待異步涂邀,數(shù)據(jù)存于變量
3替久、return 返回變量數(shù)據(jù)
// 云函數(shù)入口函數(shù)
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
await vector.then((v)=>data=v);
return data
}
版本二
因?yàn)?Promise 對(duì)象創(chuàng)建后會(huì)立即執(zhí)行,為了等待 main 中的參數(shù)再執(zhí)行辫呻,修改如下:
1清钥、把 new Promise 放在函數(shù)中返回
function vector() {
let rtn = new Promise(function (resolve, reject) {
client.WordEmbedding(req, function (errMsg, response) {
if (errMsg) {
console.log(errMsg);
resolve(null)
}
resolve(response.to_json_string())
});
})
return rtn
}
2、調(diào)用函數(shù)得到 Promise 對(duì)象
// 云函數(shù)入口函數(shù)
exports.main = async (event, context) => {
let params = '{\"Text\":\"' + event.text + '\"}'
console.log(params)
await req.from_json_string(params);
await vector().then((v) => data = v);
return data
}
參考:
JS執(zhí)行——Promise
(完)