在react中使用ajax,等待在React中完成ajax请求?

本文探讨了Ajax的异步特性,指出在请求完成前,外部代码会先执行。在React中,这可能导致预期外的执行顺序。作者建议通过封装处理逻辑来管理异步行为,以确保依赖于Ajax请求的结果的代码正确运行。示例代码展示了如何在Ajax调用后调用外部函数,从而实现更清晰的代码结构。
摘要由CSDN通过智能技术生成

由于hainguyen指出,Ajax是典型的异步的代码之后将运行,直到请求完成,此时执行内部函数。所以外部控制台日志几乎肯定会在您的代码中首先运行。虽然hainguyen指出有办法解决这个问题,但大多数人建议不要这样做。 Ajax是需要时间的,因此你的代码结构应该反映这一点。如果您发现自己希望在处理ajax请求时运行代码,则可能不喜欢同步结构。我的“我无人等待”日志显示了异步方法的强大功能,因为该逻辑将快速运行,而您通常会等待请求而无法执行任何操作。

而不是让它同步为什么不使用函数来处理异步行为更好,就像在内部控制台登录函数后包装你想要运行的任何东西一样:(我称之为outside())这将输出“inside ajax” ,“外部ajax”。这样你就可以在你的ajax return上创建依赖关系,并且仍然可以选择在此期间运行的东西。

import React from 'react';

import request from 'superagent';

const UserItems =() => {

request.get('http://localhost:4000/user/1/items.json')

.then((res, err) => {

if (err) {

console.log("errror found");

}

var data = JSON.parse(res.text);

console.log("inside ajax");

console.log(data);

outside();

});

function outside(){

console.log("outside ajax");

console.log(data);

}

console.log("I wait for no one, run me as quick as possible!");

};

export default UserItems;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值