我想做一个使用Bing Translator的翻译器功能。我可以做到这一点,并且效果很好,但是当我尝试从代码中调用它时,并期望输出结果,我什么都没有。我发现了原因,因为实际的代码没有等待翻译器返回文本。我尝试使用异步等待,但无法正常工作。请帮助我。
我想在每个foreach元素中调用翻译器的代码。
let msg = {};
error.details.forEach( e => {
const translated = translate("hello world");
console.log(translated)
msg[e.path] = translated;
});
return res.status(400).send(msg)
这是translate.js文件:
const request = require('request');
const uuid = require('uuid');
async function translate(string) {
var key_var = process.env.T_KEY;
var endpoint_var = process.env.T_END;
let options = {
method: 'POST',
baseUrl: endpoint_var,
url: 'translate',
qs: {
'api-version': '3.0',
'to': ['hu']
},
headers: {
'Ocp-Apim-Subscription-Key': key_var,
'Content-type': 'application/json',
'X-ClientTraceId': uuid.v4()
},
body: [{
'text': 'hello world'
}],
json: true
};
request(options, async function(err, res, body){
const response = await body[0].translations[0].text;
return response;
});
}
module.exports.translate = translate;
请不要判断我,我正在通过编写代码来学习整个新事物,但在这里我陷入了困境。我读了许多关于诺言的文章,但我听不懂。我希望有人可以帮助我一点。预先感谢。