How can I get the result from javascript run by runJavaScript in QtWebengine?

I want to get result from the js run by runJavaScript. The result is formed after some time in js, but since js returns immediately, I can not get the mature result. How can I modify the js code or the C++ code to get the mature result? I know I can use QWebChannel to notify C++ of the mature result at appropriate time but that is a little complex. Can I delay the return time of js code so it can return with the matured result?

C++:

Qt Code:
  1. page()->runJavaScript(js,[this](const QVariant &v) {
  2. qDebug()<<v.toString();
  3. }
To copy to clipboard, switch view to plain text mode 

js:

Qt Code:
  1. var result="immature result";
  2. function fun()
  3. {
  4. result="mature result";
  5. }
  6. setTimeout(fun,2000);
  7. result;
To copy to clipboard, switch view to plain text mode