Asynchronous 从异步函数返回多个值

Asynchronous 从异步函数返回多个值,asynchronous,parameters,vala,Asynchronous,Parameters,Vala,我很难编写一个“异步”函数,该函数使用“out”返回多个值 这足以触发错误。一旦关键字“async”成为函数头的一部分,我在调用函数时就会出现以下错误: error: Argument 2: Cannot convert from `string?' to `GLib.AsyncReadyCallback?' 这就是电话的样子 getArticle(15752, out html, out title, out author, out url); 如果我删除关键字“async”,一切都会重新

我很难编写一个“异步”函数,该函数使用“out”返回多个值

这足以触发错误。一旦关键字“async”成为函数头的一部分,我在调用函数时就会出现以下错误:

error: Argument 2: Cannot convert from `string?' to `GLib.AsyncReadyCallback?'
这就是电话的样子

getArticle(15752, out html, out title, out author, out url);
如果我删除关键字“async”,一切都会重新开始工作。这在vala中是可能的,还是我必须返回一个包含所有4个字符串的对象才能工作

提前谢谢你的帮助


非常感谢,Jan

您必须使用异步方法末尾的
out
参数:

getArticle.begin(15752, (obj, result) => {
  getArticle.end(result, out html, out title, out author, out url);
}

thx,但是如何从这个lambda表达式中得到值呢?类似于“getArticle.begin(15752,(obj,result,html,title,author,url)=>{getArticle.end(result,out-html,out-title,out-author,out-url);});”的内容不起作用。在函数完成执行后调用回调,但立即调用begin()调用后的下一行。无法访问out变量,因为值不一定存在。有关更多信息,请参阅。
getArticle.begin(15752, (obj, result) => {
  getArticle.end(result, out html, out title, out author, out url);
}