diff --git a/README.md b/README.md index fff919b..45b8d9e 100644 --- a/README.md +++ b/README.md @@ -243,5 +243,18 @@ Promise { ``` +2. Resolve by signal and binary expression +------------------------------------------ +``` +Promise { + resolveWhen: Q.all([timer.triggered, promise2]); + + Promise { + id : promise2 + resolveWhen: image.status === Image.Ready + } +} + +``` diff --git a/tests/unittests/tst_promise_resolvewhen_all_promise.qml b/tests/unittests/tst_promise_resolvewhen_all_promise.qml new file mode 100644 index 0000000..a53d9a9 --- /dev/null +++ b/tests/unittests/tst_promise_resolvewhen_all_promise.qml @@ -0,0 +1,44 @@ +import QtQuick 2.0 +import QtTest 1.0 +import QuickPromise 1.0 + +TestSuite { + name : "Promise_ResolveWhen_All_Promise" + + Component { + id: promiseCreator; + Promise { + id : promise + signal triggered + property alias promise1 : promiseItem1 + property alias promise2 : promiseItem2 + resolveWhen: Q.all([promise1,promise2,promise.triggered]) + Promise { + id: promiseItem1 + } + Promise { + id: promiseItem2 + } + } + } + + function test_resolve() { + var promise = promiseCreator.createObject(); + compare(promise.isSettled,false); + tick(); + compare(promise.isSettled,false); + + promise.triggered(); + compare(promise.isSettled,false); + tick(); + compare(promise.isSettled,false); + + promise.promise1.resolve(); + promise.promise2.resolve(); + compare(promise.isSettled,false); + + tick(); + compare(promise.isSettled,true); + } +} + diff --git a/tests/unittests/unittests.pro b/tests/unittests/unittests.pro index 54ab8ab..2ca7907 100644 --- a/tests/unittests/unittests.pro +++ b/tests/unittests/unittests.pro @@ -22,4 +22,5 @@ DISTFILES += \ tst_promisejs_all_promise_item.qml \ tst_promise_resolvewhen_promise.qml \ TestSuite.qml \ - tst_promise_resolvewhen_all_signal.qml + tst_promise_resolvewhen_all_signal.qml \ + tst_promise_resolvewhen_all_promise.qml