【发布时间】:2018-11-02 21:22:56
【问题描述】:
我正在开发 shopify 集成。 我们收到一个数组项,然后循环遍历它们并为它们添加一个新模型(func1),然后我需要使用第一个结果并将其添加到计划中(func2)。
我需要此函数按顺序运行,因为我将结果添加到计划中,如果我有两个相同日期的结果并且它们在数据库中尚不存在,如果它们并行运行它会创建 2 个单独的数据库中的条目而不是具有两个值的条目。
我需要返回的方式是func1,func2,func1,func2....
但此刻正在返回 func1, func1...func2, func2...
这是我需要完成的一个简化示例。
const func2 = () => {
return new Promise((resolve, reject) => {
setTimeout(() => {
return console.log('func2');
}, 3000);
});
};
const func1 = () => {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log('Func1');
func2();
}, 1000);
});
};
const array = [1, 2, 3, 4, 5];
const test = () => {
array.map(x => {
func1();
});
};
test();
如果有不清楚的地方,请告诉我。 谢谢
【问题讨论】:
-
您无法从 setTimeout 返回。你有承诺,你不调用resolve?
标签: javascript arrays