In fact, i had get_in_ppx and not let_in_ppx. Works now. Thank you @yawaramin.
While I have you. How does one go about using the return value from let anything?
If i do this, to follow with that example:
module Await = {
let let_ = (promise, continuation) =>
promise
|> Js.Promise.then_(value => continuation(value) |> Js.Promise.resolve);
};
// let%Await user = Js.Promise.resolve(User.getUser());
// // Js.log(user);
// Js.log2("AwaitUser: ", user)
let _ = {
let%Await x = Js.Promise.resolve("from promise");
let%Await y = Js.Promise.resolve(123);
let%Await user = Js.Promise.resolve(User.getUser());
Js.log({j|y = $y|j});
Js.log({j|x = $x|j});
Js.log(y);
Js.log(x);
Js.log(user);
};
I get this output in the console:
y = 123 index.bs.js:65
x = from promise index.bs.js:66
123 index.bs.js:67
from promise index.bs.js:68
Array(3) [ "idkjs", "aarmand.inbox@gmail.com", "+15555555555" ]
index.bs.js:69
If i do,
let user = {
let%Await user = Js.Promise.resolve(User.getUser());
Js.log2("AWAITING_USER_INSIDE: ", user);
user;
};
Js.log2("AWAITING_USER: ", Js.Promise.resolve(user));
Js.log2("AWAITING_USER: ", user);
let user = () => {
let%Await user = Js.Promise.resolve(User.getUser());
Js.log2("AWAITING_USER_INSIDE_WITH_FUNCTION: ", user); //this never logs
user;
};
Js.log2("AWAITING_USER_FUNCTION: ", Js.Promise.resolve(user));
I get:
AWAITING_USER:
Promise { <state>: "pending" }
index.bs.js:43
AWAITING_USER:
Promise { <state>: "pending" }
AWAITING_USER_FUNCTION:
Promise { "fulfilled" }
<state>: "fulfilled"
<value>: function user$1()
<prototype>: PromiseProto { … }
index.bs.js:52
AWAITING_USER_INSIDE:
Array(3) [ "idkjs", "aarmand.inbox@gmail.com", "+15555555555" ]
index.bs.js:39
What is going on here?
Also, I would love some links to resources for Promise error handling and promises in general, i feel like i keep running into the same mistakes. Thanks, brother.