Comments (5)
@pczerkas The error message you're seeing looks familiar, same has been reported in reactphp/async#16. Maybe it could be the case that you use an await()
somewhere and forgot to wrap it into an async function. As the documentation of async says:
This function is specifically designed to complement the await() function. The await() function can be considered blocking from the perspective of the calling code. You can avoid this blocking behavior by wrapping it in an async() function call. Everything inside this function will still be blocked, but everything outside this function can be executed asynchronously without blocking::
Loop::addTimer(0.5, React\Async\async(function () {
echo 'a';
React\Async\await(React\Promise\Timer\sleep(1.0));
echo 'c';
}));
Loop::addTimer(1.0, function () {
echo 'b';
});
// prints "a" at t=0.5s
// prints "b" at t=1.0s
// prints "c" at t=1.5s
It's not explicitly written, but you can't use blocking code inside a promise or timer function. The same goes for await()
, because it is also a blocking function. With the async()
function this behavior can be avoided, but it only works in combination with await()
, which means async()
doesn't turn every blocking function magically into an async one.
You can read all about it in the reactphp/async readme.
Does this help?
from promise.
@SimonFrings thanks! Yes, I've seen that issue, and also tried this ealier:
$this->loop->addPeriodicTimer(
1.0,
async(function (
[...]
In the meantine I've downgraded react/async
from v4.0.0 to v3.0.0, changed timer function signature to not pass to it whole object, but only string (testSessionId) and I'm seeing rock-solid stability now.
I guess I'll leave this configuration as it is.
from promise.
Why are you passing $resolve
by reference, and later checking if it someone is true
?
from promise.
These two are remnants of debugging: if I change to not pass $resolve
by ref and remove if
clause the same error happens.
if
also demonstrates something strange: how can null value of $resolve
pass the if
statement?
from promise.
This app is basically a forwarding proxy, but waits in controller to calculate address of destination node, that is ready to take connection (hence periodic timer).
from promise.
Related Issues (20)
- 2.x returned promise types HOT 3
- return promise from onFullfilled HOT 8
- Fullfilled or Rejected promise and then method HOT 9
- Is there is any way in Reactphp to run code really asynchronously HOT 1
- [RFC] Consider deprecating FulfilledPromise and RejectedPromise (mark as internal only) HOT 6
- Detecting thenable causes unwanted side effects
- ETA version 3? HOT 4
- Call promise twice HOT 2
- When serializing & later unserializing exceptions thrown by clashing function calls HOT 13
- PHP 8.0 Deprecation Notice HOT 1
- Blocking a promise from running untill another promise has completed. HOT 11
- Problem with PHP 8 HOT 3
- allSettled operator HOT 2
- QUESTION - How to test if a code is blocking or not HOT 2
- php 7.1 multiple exceptions using the pipe (|) character HOT 1
- Allow `iterable` instead of `array` for `all()`, `race()` and `any()` HOT 1
- Add example folder HOT 2
- Support Disjunctive Normal Form Types (DNF types) for PHP 8.2+
- Arguments expecting callables should describe the full signature of callables HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from promise.