草庐IT

异步异常

全部标签

javascript - 为什么我的 React 组件渲染被调用两次,一次没有数据,然后又一次有数据,但是为时已晚的异常?

我有一个组件TreeNav,其数据来自api调用。我已经设置了reducer/action/promise和所有的管道,但是当我在数据上调用map()时在组件渲染中,得到“UncaughtTypeError:Cannotreadproperty'map'ofundefined”。故障排除显示TreeNavrender()被调用了两次。第二次是在数据从api返回之后。但是由于第一个render()错误,第二个render()永远不会运行。这是我的代码文件:--------reducers/index.js--------import{combineReducers}from'redux'

javascript - 使用异步/等待时在 Express 中捕获未处理的异常

看下面的TypeScript代码:app.get('/test_feature',function(req:Request,res:Response){thrownewError("Thisisthebug");});app.use(logErrors);functionlogErrors(err:Error,req:Request,res:Response,next:NextFunction){console.log(err);mongoDal.log(err.message,err);next(err);}在这里,我在请求处理程序中抛出一个错误,它会按预期触发logErrors函数

javascript - 在数组javascript的排序功能中实现异步/等待

我正在尝试在ProtractorElementArrayFinder上实现排序方法。众所周知,所有Protractor方法都返回promise。所以我的排序方法有一个条件取决于promise的解决。我正在为async/await使用节点插件,以使其与低于6的node.js版本兼容。(这里是插件:https://www.npmjs.com/package/asyncawait)这是我的代码,其中this是ArrayElementFinder:varasyncCompare=async(function(a,b){letx=await(a.getText());lety=await(b.g

javascript - JavaScript 中的递归异步函数

我正在尝试在JavaScript中使用async/await编写递归函数。这是我的代码:asyncfunctionrecursion(value){returnnewPromise((fulfil,reject)=>{setTimeout(()=>{if(value==1){fulfil(1)}else{letrec_value=awaitrecursion(value-1)fulfil(value+rec_value)}},1000)})}console.log(awaitrecursion(3))但是我有语法错误:letrec_value=awaitrecursion(value-

javascript - 组件上的异步等待已挂载

这是我的componentDidMount方法。我想设置当前用户的状态,然后在设置该用户时调用该函数。我该怎么做?componentDidMount=()=>{firebase.auth().onAuthStateChanged((user)=>{if(user){this.setState({user:user})}});this.props.retrieveMatches(this.state.user.uid)}我试过使用async/await但我在这里没有正确使用它:asynccomponentDidMount=()=>{awaitfirebase.auth().onAuthS

javascript - React Hooks 异步最佳实践

现在使用useEffects,可以将componentDidMount替换为带有Hooks的React组件。场景“对服务器的初始唯一调用”:为实现这一点,useEffect中的DependencyList(useEffect的第二个参数)每次都应该是一个空数组,否则应用程序将向服务器发送每个状态更改的获取调用.这意味着,这是获取数据的最佳实践useEffect(()=>{console.log("useEffect,fetchDatahere");},[]);最好的做法是使用[]作为DependencyList参数来禁用请求每个状态更改的服务器吗?链接到githubhttps://gi

javascript - 为什么 Javascript 中的递归异步函数会导致堆栈溢出?

考虑这个片段:functionf(){returnnewPromise((resolve,reject)=>{f().then(()=>{resolve();});});}f();也可以这样写:asyncfunctionf(){returnawaitf();}f();如果您运行给定的两个代码中的任何一个,您将遇到此错误:(node:23197)UnhandledPromiseRejectionWarning:RangeError:Maximumcallstacksizeexceeded我的问题是为什么?在回答我的问题之前,请考虑我的论点:我了解递归的概念以及如果没有停止条件它如何导致堆

javascript - 如何让 jQuery 将自定义参数传递给异步 AJAX 回调函数?

我的页面处理许多“商店”对象,每个对象都有一个名为“数据”的字段。但是,此数据是通过可能并行进行的AJAX请求获取的。functionStore(id){this.id=id;this.queryparam='blah';this.items=null;}Store.prototype.fetch=function(){$.get("/get_items",{q:this.quaryparam},function(data,status){//howtostorethereceiveddatainthisparticularstoreobject?Being//acallbackfun

javascript - 如果元素不存在,则 jQuery 异常

我使用jQuery,如果我附加某个事件或尝试对不存在的元素(从选择器获取)执行某些操作,我需要随时随地获取异常(通过任何操作)。对于这个问题,jQuery中是否有一些内部“严格”模式? 最佳答案 不,没有。但是,您可以为它制作一个简单的插件:$.fn.checkEmpty=function(){if(!this.length)thrownewError("Noelementsmatchedby"+this.selector);returnthis;};$('...').checkEmpty().bind(...);或者:functi

javascript - jquery - 在异步数据获取后更新 jquery.sparkline

背景我正在使用jquery.sparkline生产PieCharts.饼图的数据包含在一个数组中。当页面首次加载时,调用网络服务(使用.ajax)来获取数据,那里指定的回调获取接收到的数据并更新与饼图关联的数组。当屏幕上的下拉菜单更改值时,将调用相同的更新过程。情况如果我将.ajax调用设置为asynch=false,一切正常。如果我将.ajax调用设置为asynch=true,则饼图中显示的结果总是“落后一次刷新”。我的意思是,最初没有饼图,然后当下拉菜单发生变化时,饼图呈现为最初应该呈现的样子。代码$.ajax({type:"GET",contentType:"applicatio