猿问

使用 setTimeout 函数从 redux 分派一个操作并通过 fetch 调用解析

正如标题所说,我遇到了一些有趣的承诺问题。所以我有一个使用方法导出对象的文件,该函数获取 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 = 100


export default {

    getProducts: (cb, timeout) => setTimeout(() => {

        new Promise(resolve => resolve(products)).then((data)=> cb(data))

    }, timeout || TIMEOUT),

}

感谢所有尝试提供帮助的人


海绵宝宝撒
浏览 86回答 2
2回答

缥缈止盈

好的,我的代码确实有效!我的服务器有问题。

拉莫斯之舞

你的内容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 setTimeoutconst delay = (millis) => new Promise( resolve => setTimeout(resolve, millis));// Use default argument valueconst TIMEOUT = 100;const getProducts = async (cb, timeout=TIMEOUT) => {  await delay(timeout);  const data = await products();  cb(data);}export default getProducts
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答