【发布时间】:2018-10-10 00:54:39
【问题描述】:
如何将 setTimeout 添加到我的异步等待函数调用中?
我有
request = await getProduct(productids[i]);
在哪里
const getProduct = async productid => {
return requestPromise(url + productid);
};
我试过了
request = await setTimeout((getProduct(productids[i])), 5000);
并得到错误TypeError: "callback" argument must be a function,这是有道理的。该请求位于循环内部,这使我达到了 api 调用的速率限制。
exports.getProducts = async (req, res) => {
let request;
for (let i = 0; i <= productids.length - 1; i++) {
request = await getProduct(productids[i]);
//I want to wait 5 seconds before making another call in this loop!
}
};
【问题讨论】:
-
这是一个非常相似的问题:How to make nightmare request timeout.
-
你的意思是请求从现在开始执行 1 秒还是你立即开始它,如果它没有在 1 秒内完成,那么你就超时了?
-
仅供参考,request-promise 库已经支持超时选项,所以如果您只想超时等待响应,您可以使用 request-promise 库中已经内置的选项。
-
@jfriend00 感谢 cmets。我实际上想在函数中放置一个等待,以便在一个请求之后它会在发出另一个请求之前等待。我之前在库中没有看到超时选项,感谢您提供链接。
-
该超时选项不是下一个请求的等待选项。这些是完全不同的东西。
标签: node.js callback async-await settimeout