enum.resolve
0.000000

Resolves an enumerable.

Arguments
no defined arguments
Return Value
true

Enumerators are evaluated lazily, meaning they don't iterate over the underlying enumerable values until consumed. The enum.resolve proc forces the enumerator to resolve immediately, returning true on success.

something went wrong :(
Deleting all keys in a bucket
Setup
authorization=PROCAUTH
require "proc"

client = Proc.connect("PROCAUTH")
const Proc = require("@proc.dev/client");
const client = Proc.connect("PROCAUTH");
client.enum.resolve.call(
  client.keyv.scan(bucket: "pfe595a2") >> client.enum.each {
    client.keyv.delete(bucket: "pfe595a2")
  }
)
client.enum.resolve.call(
  client.keyv.scan(
    undefined, pfe595a2
  ).compose(
    client.enum.each(undefined, {}, () => {
      return client.keyv.delete(
        undefined, pfe595a2
      );
    })
  )
);
curl "https://proc.run/enum/resolve" --silent \
--header "authorization: bearer $authorization" \
--header "content-type: application/vnd.proc+json" \
--header "accept: text/plain" \
--data '[[">>", ["pfe595a2"]]]]]]]]]'
 

true

Without the call to enum.resolve in the above example, the return value from enum.each would be returned to the client. Both approaches still have the same side-effects of deleting all keys in the bucket.

Enumerators are a complex topic but bring a lot of power to your projects—learn more in the docs.


Stuck? Want to chat about an idea? Join the community on Discord.