deno写接口 比如oak如何设置接口超时时间?
理论上,使用 Promise.race
加 setTimeout
是不是就可以啊
Promise.race([
fetch(URL),
new Promise(function(resolve,reject){
setTimeout(()=> reject(new Error('request timeout')),2000)
})])
.then((data)=>{
//请求成功
}).catch(()=>{
//请求失败
});
这样吗,这种怎么感觉像前端写的。
我写接口比如:
const router = new Router();
router.get("/", async (ctx) => {
Promise.race([
fetch(URL),
new Promise(function(resolve,reject){
setTimeout(()=> reject(new Error('request timeout')),2000)
})])
.then((data)=>{
//请求成功
ctx.response.body = "start!!";
}).catch(()=>{
//请求失败
});
})
上面这样套用promise是这样写接口超时吗
这无所谓前端后端,deno 就是直接使用的现有 web api,所以对前端更加友好。
node 的 api 更像是 linux/php/java,而 deno 的 api 更像是前端/浏览器。