正如标题所说,我遇到了一些有趣的承诺问题。所以我有一个使用方法导出对象的文件,该函数获取 2 个值并返回 setTimeout。该函数获取 redux 操作(函数调度)和 setTimeout 的值。问题是当我想要进行 fetch 调用,然后当承诺履行时调度操作。我最接近的代码是:const products = async () => { const response = await fetch('http://localhost:3009/products'); const data = await response.json(); return data}const TIMEOUT = 100export default { getProducts: (cb, timeout) => setTimeout(() => { new Promise(resolve => resolve(products)).then((data)=> cb(data)) }, timeout || TIMEOUT),}感谢所有尝试提供帮助的人
2 回答
拉莫斯之舞
TA贡献1820条经验 获得超10个赞
你的内容default export很难阅读,而且可能有问题。尝试声明一个 const 并将其导出。
此外,您的Promise逻辑毫无意义:一旦timeout经过 millis,创建一个Promise自动解析为指向 function 的指针products,然后cb使用该函数作为参数进行调用。
const products = async () => {
const response = await fetch('http://localhost:3009/products');
const data = await response.json();
return data
}
// Helper function to promisify setTimeout
const delay = (millis) => new Promise( resolve => setTimeout(resolve, millis));
// Use default argument value
const TIMEOUT = 100;
const getProducts = async (cb, timeout=TIMEOUT) => {
await delay(timeout);
const data = await products();
cb(data);
}
export default getProducts
添加回答
举报
0/150
提交
取消