代码拉取完成,页面将自动刷新
Social Media Photo by Jan Genge on Unsplash
A utility to simpify the repeated unique ID + promise dance.
import nextResolver from 'next-resolver';
const [next, resolve] = nextResolver();
// next unique identifier and its promise
const [id, promise] = next();
// pass the promise around, hold the id ...
// ... so that whenever it's done:
if (condition) {
resolve(id, value);
// or reject via
resolve(id, null, new Error('reason'));
}
The default nextResolver()
accepts an optional callback that will receive a unique identifier that can be used to return something else:
// use strings instead of numbers as IDs
const [next, resolve] = nextResolver(String);
const [id, promise] = next();
typeof id; // string
// use any Map key variant
const [next, resolve] = nextResolver(id => {
// make it stronger (not really useful)
return `${id}-${crypto.randomUUID()}`;
// make it a unique ref
return { id };
});
Please note that if the returned value is still awaited, the next id
will be passed to create a new identifier (so don't put too much logic within the id
creation, it's already granted to be unique per that logic/session).
This is mostly needed in case you want to brand your async operations, so that something like a prefix would be enough:
const [next, resolve] = nextResolver(id => `my-logic-${id}`);
And that's all folks 🥕
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。