我正在使用node.js和库 Translate 。我可以这样做吗? :
function traduce(text){
translate.text(text,function(err,result){
return result;
});
}
然后使用结果?它总是让我“未定义”。有没有办法使用结果而不这样做? :。
translate.text(text,function(err,result){
// use result
// some logic
});
答案 0 :(得分:4)
您正在执行该函数,您正在传递对匿名函数的引用。如果您想要返回值,请执行它:
function traduce(text){
translate.text(text, (function(err,result){
return result;
})());
}
答案 1 :(得分:3)
这不是一个问题,你能做到这一点,但你应该这样做吗?这真的是理解异步代码的问题,node.js的每一个介绍都涵盖了一些深度。
翻译本身使用google api,因此向另一台服务器发出请求。如果你要等待结果,那将是一个冗长的阻塞操作,这是不可取的。
答案 2 :(得分:-1)
他们提供30种语言的翻译。我认为,这意味着通过调用Web服务进行翻译,对吧?也许node.js像其他语言一样提供类似“waitFor”的东西。但正如你所写,它是不可成功的