本文主要是介绍Promise 超时相关笔录——《你不知道的JavaScript-中卷》,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
// 用于超时一个Promise的工具
function timeoutPromise(delay) {return new Promise( function(resolve, reject) {setTimeout(function(){reject('Timeout');}, delay);});
}// polyfill安全的guard检查,保证Promise不会被意外默默忽略
if (!Promise.observe) {Promise.observe = function(pr, cb) {pr.then({function fulfilled(msg) {// 安排异步回调Promise.resolve(msg).then(cb);},function rejected(err) {// 安排异步回调Promise.resolve(err).then(cb);}});// 返回最初的Promisereturn pr;};
}// 如何使用
Promise.race([Promise.observe(promiseFun(), function cleanUp(msg) {// 在foo()之后清理,即使它没有在超时之前完成}),timeoutPromise(3000) // 给它3秒钟
])
这篇关于Promise 超时相关笔录——《你不知道的JavaScript-中卷》的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!