猿问

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

先看代码:

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 值。

慕雪6442864
浏览 1258回答 13
13回答

慕村225694

直接return data 不行吗?

牧羊人nacy

不行,得到的是undefined

互换的青春

@dudu: 那就ajax改为同步的,或者你把replace放到ajax success中去   要不可以修改replace函数啊?

慕桂英3389331

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

牛魔王的故事

必须要返回回去

慕虎7371278

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

慕少森

var result = ''; $.ajax({ data: { imgSrc: capture }, dataType: 'jsonp', async:false, success: function (data) { result = data; } }); console.log(result ); 这样不知道是否满足意思。。。

湖上湖

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

PIPIONE

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

12345678_0001

你要知道 你这个 是 异步的 !
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答