Keep in mind that when using the Deferred class, you need to specify that it is a Generator
callback.
CoroutineGen::runNonBlocking(
function() : Generator {
$deferred = new Deferred(function() : Generator {
return yield file_get_contents('http://www.weather.com.cn/data/cityinfo/101270101.html');
});
$data = yield from $deferred->await();
var_dump($data);
},
function() : Generator {
yield var_dump("END!");
},
function() {
var_dump("START!");
},
function() {
var_dump("Hello World");
}
);
string(6) "START!"
string(11) "Hello World"
string(4) "END!"
string(10989) "<!DOCTYPE HTML>
<html>
<head>
<link rel="dns-prefetch" href="http://i.tq121.com.cn">
<meta charset="utf-8" />
...."