为了账号安全,请及时绑定邮箱和手机立即绑定

javascript:如何在ajax callback函数中将值返回给上层callback函数

javascript:如何在ajax callback函数中将值返回给上层callback函数

慕雪6442864 2018-12-06 11:52:39
先看代码: content = content.replace(/<img [^>]*src=['"]([^'"]+)[^>]*>/gi, function (match, capture) { $.ajax({ data: { imgSrc: capture }, dataType: 'jsonp', success: function (data) { //如何将data值返回给function (match, capture) } }); }); 需求是:在ajax的回调函数中将ajax请求的返回值传递给上层函数(也就是replace的回调函数)。 简面言之:function (match, capture) 要返回 success: function (data) 中的 data 值。
查看完整描述

13 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

直接return data 不行吗?

查看完整回答
反对 回复 2018-12-24
?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

不行,得到的是undefined

查看完整回答
反对 回复 2018-12-24
?
互换的青春

TA贡献1797条经验 获得超6个赞

@dudu: 那就ajax改为同步的,或者你把replace放到ajax success中去

 

要不可以修改replace函数啊?

查看完整回答
反对 回复 2018-12-24
?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

为什么要返回回去啊,直接对值进行处理不行吗

查看完整回答
反对 回复 2018-12-24
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

必须要返回回去

查看完整回答
反对 回复 2018-12-24
?
慕虎7371278

TA贡献1802条经验 获得超4个赞

把AJAX设为同步方式进行阻塞,等待返回结果。。。

查看完整回答
反对 回复 2018-12-24
?
慕少森

TA贡献2019条经验 获得超9个赞

var result = '';
$.ajax({
            data: { imgSrc: capture },
            dataType: 'jsonp',

async:false,

            success: function (data) {
                result = data;
            }
        });
 console.log(result );

这样不知道是否满足意思。。。

查看完整回答
反对 回复 2018-12-24
?
湖上湖

TA贡献2003条经验 获得超2个赞

@Mr h...: 同步也不行

查看完整回答
反对 回复 2018-12-24
?
PIPIONE

TA贡献1829条经验 获得超9个赞

@dudu: 那把回调函数放到replace之前 行不行

查看完整回答
反对 回复 2018-12-24
?
12345678_0001

TA贡献1802条经验 获得超5个赞

你要知道 你这个 是 异步的 !

查看完整回答
反对 回复 2018-12-24
?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

ajax是异步的直接return的方式显然是不行,建议的做法是直接将要对数据进行处理的函数,在方法中传递进来,这样就达到了数据处理的效果;

 如果非要返回的话,建议定义一个类似消息队列的处理方式来达到这个效果,个人感觉必须返回回去的难度有点大

查看完整回答
反对 回复 2018-12-24
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

楼上+1

查看完整回答
反对 回复 2018-12-24
  • 13 回答
  • 0 关注
  • 1257 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号