这是node.js中的典型情况:
asyncFunction(arguments, callback);
Run Code Online (Sandbox Code Playgroud)
当asynFunction完成后,callback被调用.我看到这个模式的一个问题是,如果asyncFunction 永远不会完成(并且asynFunction没有内置的超时系统),那么callback永远不会被调用.更糟糕的是,似乎callback没有办法确定asynFunction永远不会回来.
我想实现一个"超时",如果在1秒内callback没有被调用asyncFunction,那么会callback自动调用带有asynFunction错误的假设.这样做的标准方法是什么?
我想知道,异步函数中将等待多长时间[从而将所有资源保留在 RAM 中]。考虑这个例子:
async function my_func(some_big_sized_data){
let db_input = await gettingDBinputWhichIsDamnedSlow();
//then do some processing based on db_input and some_big_sized_data
}
Run Code Online (Sandbox Code Playgroud)
现在,如果 DB 总是花很长时间才回复怎么办?wait 函数将等待并保存所有这些数据[并在此过程中占用 RAM] 多长时间?等待也有超时,或者等待实际上可以无限等待吗?【如何控制这个超时时间】
您将如何等待Promise解决/拒绝最多的执行时间?下面的代码显然是错误的,只是为了解释我要实现的目标。我一无所知。
await doSomething();
if ( executionTime > maxExecutionTime ) {
doSomethingElse();
}
Run Code Online (Sandbox Code Playgroud)
这不是为了蓝鸟的承诺。