我必须编写一个javaScript函数,将一些数据返回给调用者.
在该函数中,我有多种方法来检索数据,即
每个选项可能需要自己的时间来完成,它可能会成功或失败.
我想要做的是,异步/并行地执行所有这三个选项,并返回先返回的结果.
我理解JavaScript中不可能并行执行,因为它是单线程的,但我想至少异步执行它们并取消其他任务,如果其中一个返回成功结果.
我还有一个问题.
提前返回并继续执行JavaScript函数中的剩余任务.
伪代码示例:
function getOrder(id) {
var order;
// early return if the order is found in cache.
if (order = cache.get(id)) return order;
// continue to get the order from the backend REST API.
order = cache.put(backend.get(id));
return order;
}
Run Code Online (Sandbox Code Playgroud)
请建议如何在JavaScript中实现这些要求.
参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise
Promise.race(迭代器)
返回在iterable中的第一个promise解析时解析的promise.
var p1 = new Promise(function(resolve, reject) { setTimeout(resolve, 500, "one"); });
var p2 = new Promise(function(resolve, reject) { setTimeout(resolve, …Run Code Online (Sandbox Code Playgroud)