我想做以下事情:
const contextSeeder = new ContextSeeder(context);
let props = (await (await contextSeeder.withList()).withUser()).get();
但理想情况下,这看起来像:
const contextSeeder = new ContextSeeder(context);
let props = await contextSeeder.withList().withUser().get();
withList()并且withUser()都会进行 API 调用。所以理想情况下它们应该并行运行。他们都修改了类中的一个对象,该对象是返回值(可能存在竞争条件吗?)因此,鉴于我将这两个“加载器”称为“加载器”,我希望它.get()成为实际必须等待的那个。可能吗?因为在第一种方式中,它看起来会一个一个地处理(因为两个调用中的等待)
我在一个内部运行它async function,并且我需要在函数返回时出现这些数据。我不能做一个.then()
谢谢
export default class ContextSeeder {
context = {};
serverContext;
constructor(serverContext = undefined) {
this.serverContext = serverContext;
}
withUser = async (listId = undefined) => {
let userContext = {};
await UserContextSeeder(this.serverContext).then(context => {userContext = context});
this.context = {...this.context, user: userContext}
return this;
}
withList = async (userId = undefined) => {
let listContext = {};
await ListContextSeeder(context).then(context => {listContext = context});
this.context = {...this.context, list: listContext}
return this;
}
get = () => {
return this.context;
}
}
牛魔王的故事
茅侃侃
猛跑小猪
千万里不及你
随时随地看视频慕课网APP
相关分类