diff --git a/Tests/LibCore/TestLibCorePromise.cpp b/Tests/LibCore/TestLibCorePromise.cpp index c8348051f2..6e8f969a88 100644 --- a/Tests/LibCore/TestLibCorePromise.cpp +++ b/Tests/LibCore/TestLibCorePromise.cpp @@ -18,7 +18,7 @@ TEST_CASE(promise_await_async_event) promise->resolve(42); }); - auto& result = promise->await(); + auto result = promise->await(); EXPECT(!result.is_error()); EXPECT_EQ(result.value(), 42); } @@ -33,7 +33,7 @@ TEST_CASE(promise_await_async_event_rejection) promise->reject(AK::Error::from_string_literal("lol no")); }); - auto& result = promise->await(); + auto result = promise->await(); EXPECT(result.is_error()); EXPECT_EQ(result.error().string_literal(), "lol no"sv); } @@ -53,7 +53,7 @@ TEST_CASE(promise_chain_handlers) promise->resolve(42); }); - promise->await(); + (void)promise->await(); EXPECT(resolved); EXPECT(!rejected); } diff --git a/Userland/Libraries/LibCore/Promise.h b/Userland/Libraries/LibCore/Promise.h index 4bce2895e2..6ab563cd6c 100644 --- a/Userland/Libraries/LibCore/Promise.h +++ b/Userland/Libraries/LibCore/Promise.h @@ -50,12 +50,12 @@ public: return m_result_or_rejection.has_value() && !m_result_or_rejection->is_error(); } - ErrorOr& await() + ErrorOr await() { while (!m_result_or_rejection.has_value()) Core::EventLoop::current().pump(); - return *m_result_or_rejection; + return m_result_or_rejection.release_value(); } // Converts a Promise to a Promise using a function func: A -> B