Javascript 我能';t返回一个对象值,但它由console.log显示
我试图返回由aws translate生成的对象的字符串值,该结构的对象是Javascript 我能';t返回一个对象值,但它由console.log显示,javascript,angular,angular-pipe,Javascript,Angular,Angular Pipe,我试图返回由aws translate生成的对象的字符串值,该结构的对象是 { TranslatedText: "Hola", SourceLanguageCode: "en", TargetLanguageCode: "es" } 功能 this.translate.translator.translateText(params, (err, data) => { if (err) { console.log(err, err.stack)
{
TranslatedText: "Hola",
SourceLanguageCode: "en",
TargetLanguageCode: "es"
}
功能
this.translate.translator.translateText(params, (err, data) => {
if (err) {
console.log(err, err.stack)
return err.stack;
}
if(data) {
console.log("translation :");
console.log(data.TranslatedText);
return data.TranslatedText;
}
});
我可以在控制台中看到字符串,但它不会返回它
我想我误解了这里的一些异步作业,可能返回的值实际上得到了一个未定义的值,但我不清楚。因为它在回调函数中,所以您将无法像现在这样返回数据。尝试改用承诺。如果从回调返回值没有意义。对回调中的返回值执行所需操作。听起来像是
translateText
是一个async
函数。因此,请像这样等待:
this.translate.translator.translateText(params, (err, data) => {
if (err) {
console.log(err, err.stack)
return err.stack;
}
if(data) {
console.log("translation :");
console.log(data.TranslatedText);
return data.TranslatedText;
}
});