从异步函数返回多个值

时间:2014-09-03 01:42:56

标签: asynchronous parameters vala

我在编写“异步”函数时遇到问题,该函数使用“out”返回多个值。

public async void getArticle(int articleID, out string html, out string title, out string author, out string url)
{

}

这足以触发错误。一旦关键字“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

1 个答案:

答案 0 :(得分:2)

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

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