Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将返回数据放入resolve函数_Javascript_Jquery_Laravel - Fatal编程技术网

Javascript 将返回数据放入resolve函数

Javascript 将返回数据放入resolve函数,javascript,jquery,laravel,Javascript,Jquery,Laravel,我使用ajax编写了这段代码 $.ajax({ url: '/shipments/courrier/get', type: 'GET', beforeSend: function (request) { return request.setRequestHeader('X-CSRF-Token', $("meta[name='csrf-token']").attr('content')); },

我使用ajax编写了这段代码

    $.ajax({
        url: '/shipments/courrier/get',
        type: 'GET',
        beforeSend: function (request) {
            return request.setRequestHeader('X-CSRF-Token', $("meta[name='csrf-token']").attr('content'));
        },
        success: function(response){
            let inputOptionsPromise = new Promise(function (resolve) {
                console.log(response);

                setTimeout(function () {
                    resolve({
                        '#FF0000': 'Red',
                        '#00FF00': 'Green',
                        '#0000FF': 'Blue'
                    })
                }, 2000)
            })
        }
    });
响应已返回数据

[{id: 1, name: "DHL", link: "https://webtrack.dhlglobalmail.com/?trackingnumber=",…},…]
0 : {id: 1, name: "DHL", link: "https://webtrack.dhlglobalmail.com/?trackingnumber=",…}
1 : {id: 2, name: "LBC", link: "https://www.lbcexpress.com/track/?tracking_no=",…}
但是问题是,我不知道如何把它放在resolve()上

替换此值

'#FF0000': 'Red',
        '#00FF00': 'Green',
        '#0000FF': 'Blue'

任何人都可以为我提供更好的解决方案吗?

根据您在评论中发布的链接(,仅供参考),您似乎想用AJAX调用的结果填充SweetAlert。由于SweetAlert支持提供一个Promise对象作为“options”参数,并且由于jQuery$.ajax()返回一个实现Promise接口的对象,因此您可以轻松地将这两件事结合起来:

var optionsDataPromise = $.ajax({
        url: '/shipments/courrier/get',
        type: 'GET',
        beforeSend: function (request) {
            return request.setRequestHeader('X-CSRF-Token', $("meta[name='csrf-token']").attr('content'));
        }
    });

swal({
  input: 'select',
  inputOptions: optionsDataPromise
})
在本例中,我们将$.ajax返回的承诺分配给
optionsDataPromise
变量,然后将该变量作为
inputOptions
参数分配给
swal()
。当承诺得到解决时(正如您可能猜到的,当AJAX调用成功返回时会发生这种情况),警报将根据AJAX调用返回的数据填充选项


另外,该链接中的示例只是一个静态承诺,旨在模仿有用承诺(如AJAX请求)的行为。由于它总是返回相同的数据,这些数据可能直接放在一个对象中,因此它本质上没有实现任何有用的功能,它不是一个直接复制的构造。

这看起来更像Javascript而不是Java。请更正标记或说明Java是如何卷入问题的。很抱歉,我选择的标记太快了。您首先为什么需要
Promise
?您必须在ajax请求之上创建Promise。@Jerodev这是一种反模式,因为$.ajax已经返回了一个Promise
var optionsDataPromise = $.ajax({
        url: '/shipments/courrier/get',
        type: 'GET',
        beforeSend: function (request) {
            return request.setRequestHeader('X-CSRF-Token', $("meta[name='csrf-token']").attr('content'));
        }
    });

swal({
  input: 'select',
  inputOptions: optionsDataPromise
})